4.5 问题与解答

问:我使用 Qt 4.5 和 Visual Studio 2008。我在编译 Qt 4.5 时总有提示:没有包 含:"windows.h",然后就无法进行 configure,请指教是什么问题。

答:这通常是 Visual Studio 没有安装完全的缘故。你需要完整的卸载 Visual Studio 2008,再重新安装完全版本,然后再编译 Qt 就应该没有错误了。如果习惯的话, 使用英文版 Visual Studio 更好。

问:Qt4.5 + visual studio 2008 中文版的问题。我安装好后,打开 Qt 的 Example, 编译的时候报错误,错误提示如下:

>------ Build started: Project: calculatorform, Configuration: Debug Win32 ------
>UIC calculatorform.ui
>Moc'ing calculatorform.h...
>Compiling...
>main.cpp
>calculatorform.cpp
>Generating Code...
>Linking...
>LINK : fatal error LNK1181: cannot open input file 'QtCored4.lib'

请帮忙解决。

答:从错误信息上推断,应该是安装过程出了问题。有几个关键地方需要注意,一是 安装 Visual Studio 时如果是中文版,要打上补丁 SP1;二是安装 Visual Studio 要完 整;三是不要安装 mingw,要使用 Visual Studio 编译 Qt;四是注意配置环境变量。五是 注意安装好集成插件。

问:可否实现在 Linux 下编译 Windows 环境下用 Qt + Visual Studio 2008 创建的工程?

答:这是可以实现的。步骤如下:

第 1 步,生成 .pro 文件。

第 2 步,在 pro 文件里面加宏 DEFINES += Linux 。

第 3 步,把整个工程拷贝到 Linux 机器上。

第 4 步,在命令行下面执行:

qmake -makefile xxx.pro

生成 Makefile 文件。

第 5 步,在命令行下面运行 make 命令,生成可执行文件。 问:Visual Studio 2005 每次调试都重新执行 moc

我的 Visual Studio 2005 没有修改任何文件, 但每次调试都会重新 moc, 非常麻烦。 不知是什么原因,请指教。

答:这个与 Qt 关系不大,是 Visual Studio 的缘故。通常是由于在你的工程中,有的 文件时间设置系统时间要靠后,就是晚了。重新调整一下时间即可。

问:Qt 4.5 与 Visual Studio 集成时候出错

我将 Qt 4.5 与 Visual Studio 2005 结合使用,在执行 nmake 后,安装了 qt-vs- addin-1.0.0.exe 这个软件。但是随后打开 VS 2005 时,出现如图 4-17 所示的提示信息。

图 4-17 提示信息

然后在 Visual Studio 2005 的界面上 Qt 菜单下面没有任何的下拉菜单内容,如图 4- 18 所示。不知道是什么原因,请帮助解决一下。

图 4-18 Qt 菜单式空白的

答:你使用的是中文版的 Visual Studio,所以你需要在安装 Visual Studio 时,同时安装上它的补丁 SP1,这样就不会出现图 4-17 所示的那个问题了,或者干脆使用英文版的Visual Studio。然后使用本章中的步骤把 Qt 与 Visual Studio 结合起来使用。有条件的 话,也可以使用 qt-vs-integration 这个系列的集成插件,它更为稳定一些。

问:我想在 Visual Studio 2008 中直接打开.ui 文件,而不是使用 Qt Designer,如 何办到?

答:这与你使用的集成插件版本有关。

到目前发布的 Qt 4.5.2 为止,如果在安装时使用的是 qt-vs-integration 就可以在 Visual Studio 2008 或者是 2005 中打开.ui 文件,但是 qt-vs-integration 这个软件不是 Open Source 的,需要有商业 license 才可以;如果使用的集成插件是 qt-vs-addin,这个 是 Open Source 的,但是在 Visual Studio 中就只能使用 Qt Designer 打开.ui 文件。

也就是说,在商业版本的 Qt 中,与 Visual Studio 结合起来使用,是可以无缝集成 的。而在 Open Source 版本的 Qt 中,与 Visual Studio 的集成使用是有一定限制的。

从 Qt Software 发布的 Qt Road Map 中可以推测,在 Qt 4.6 中这一情况有望得到改 善,即商业版和开源版 Qt 都可以与 Visual Studio 系列无缝集成。