常见问题解答
您也可以在已知问题和如何做部分,或一个特定区域的故障排除部分,如调试中找到您的问题答案。
一般问题
Qt Creator 附带 MinGW,我应该使用这个版本的 Qt 吗?
使用与 Qt 版本一起构建的版本。
Qt Creator 找不到辅助应用程序,例如 Git 或编译器。我应该怎么做?
确保在启动 Qt Creator 时应用程序位于系统 PATH 中。还要选择首选项来检查为应用程序指定的设置。许多插件指定了所需的工具的路径或它们运行的环境。
这对于 macOS 特别相关,其中当 Qt Creator 启动时,/usr/local/bin
可能不在路径中。
报告的问题已经解决了吗?
您可以在Qt 项目错误跟踪器中查找任何问题。
Qt Widgets Designer 集成问题
为什么即使在独立的 Qt Widgets Designer 中也能正常工作,自定义小部件即使在设计模式下也无法加载?
Qt Widgets Designer 从标准位置获取插件并加载与它的构建密钥匹配的插件。独立和集成 Qt Widgets Designer 的位置是不同的。
有关更多信息,请参阅添加 Qt Widgets Designer 插件。
QML 和 Qt Quick 问题
为什么即使我有模块,我的 QML 导入下面也有红色虚线?
默认情况下,Qt Creator 在 Qt 的 QML 导入路径中查找 QML 模块。有时它可能找错地方,您需要告诉它模块在哪里。当使用 qmake 作为构建系统时,在应用程序的.pro
文件中指定QML_IMPORT_PATH
。当使用 CMake 时,将 set
命令添加到 CMakeLists.txt 文件中。
这也启用了 QML 代码的代码补全并消除了错误消息。
以下示例说明如何指定qmake项目的导入路径,以便在不同的目标平台之间切换构建和运行工具包时工作
TEMPNAME = $${QMAKE_QMAKE} MY_QTPATH = $$dirname(TEMPNAME) QML_IMPORT_PATH += $$MY_QTPATH/../qml message("my QML Import Path: "$$QML_IMPORT_PATH)
有关如何设置CMake项目的导入路径的更多信息,请参阅导入QML模块。
当Qt Creator抱怨缺少OpenGL支持时,我应该怎么办?
Qt Creator的一些部分,例如QML性能分析器,使用Qt Quick 2,它依赖于OpenGL API进行绘制。遗憾的是,OpenGL的使用可能会引起问题,尤其是在远程设置和过时的驱动程序中。在这种情况下,Qt Creator将在控制台上显示与OpenGL相关的错误消息,或在Windows调试器日志中记录它们。
修复和解决方案因设置而异。作为最后的手段,您可以考虑禁用受影响的插件。
虚拟机
尝试在虚拟机的设置中启用3D加速。对于VirtualBox,请确保您已安装了包括实验性的Direct3D支持在内的Guest Addons。
Windows
默认情况下,Qt Quick使用Direct3D 11。如果您有问题,请尝试更新您的图形驱动程序或更新DirectX版本。运行dxdiag.exe
以检查是否已启用Direct3D加速。
您还可以尝试将环境变量QSG_RHI_BACKEND
设置为vulkan
或opengl
。有关详细信息,请参阅Qt for Windows - Graphics Acceleration。
Unix
运行glxgears
进行快速检查OpenGL是否工作。查看glxinfo
的输出以获取更多详细信息,如OpenGL驱动程序和渲染器(在应用程序输出中搜索OpenGL)。
如果您使用的是Mesa驱动程序,您可以通过设置环境变量LIBGL_ALWAYS_SOFTWARE
强制OpenGL在软件中进行渲染。
禁用插件
您可以通过禁用Qt Creator插件,牺牲功能为代价
- 通过命令行以
-noload QmlProfiler -noload QmlDesigner
参数启动Qt Creator。 - 通过选择帮助 > 关于插件永久禁用插件。
帮助问题
Qt API参考文档缺失,上下文帮助未找到相关主题。我能做什么吗?
使用Qt Online Installer安装Qt版本和Qt文档。
要查看已安装的文档(.qch文件)和添加文档,请转到首选项 > 帮助 > 文档。有关更多信息,请参阅添加外部文档。
调试器问题
有关调试器的故障排除信息,请参阅故障排除调试器。
如果我有GDB版本的选择,我应该使用哪个版本?
在Linux和Windows上,使用安装Qt Creator和Qt时安装的Python启用GDB版本。在macOS上,GDB不再官方支持。要构建自己的Python启用GDB,请遵循构建GDB中的说明。
您必须使用Python版本2.6或2.7。
有关更多信息,请参阅支持的调试器。
如何在Qt Creator中生成核心文件?
要触发调试时生成核心文件的 GDB 命令,请转到视图 > 视图 > 调试器日志。在命令字段中,输入gcore
并按下Enter。核心文件将在当前工作目录中创建。您可以将文件指定为另一个位置,包括相对路径或绝对路径,作为命令的参数。
编译器问题
我如何使用 Qt Creator 利用多核 CPU?
在 Linux 和 macOS 上,转到项目模式,在构建设置中选择您的配置,找到构建步骤,并添加以下值,其中 <num>
是 CPU 的核心数:-j <num>
在 Windows 上,nmake 不支持 -j
参数。您可以使用 jom。您可以从前Qt 下载中下载 jom 的预编译版本。将 jom.exe 放入 %PATH% 的位置。转到 构建设置并将 jom.exe 设置为制作命令。
注意:与 GNU make 不同,jom 会自动检测您的核心并为您 CPU 的核心数启动等多的并行进程。您可以使用上面所述的 -j
参数来覆盖此行为。
Qt 安装问题
我无法使用从二进制包安装的 Qt 中的 QSslSocket。我该怎么做?
二进制包中的 Qt 使用 QT_NO_OPENSSL 定义构建。可以重新构建它。有关更多信息,请参阅http://www.qtcentre.org/threads/19222-Qssl。
在 Ubuntu 或 Debian 中,需要哪些发行版的开发包?
sudo apt-get install libglib2.0-dev libsm-dev libxrender-dev libfontconfig1-dev libxext-dev
如果您使用 QtOpenGL,则还需要
sudo apt-get install libgl-dev libglu-dev
平台相关问题
在 Qt Creator 中在哪里显示应用程序输出?
在 Unix (Linux 和 macOS) 中:qDebug()
以及相关的函数使用标准输出和错误输出。当您运行或调试应用程序时,您可以在 应用程序输出 中查看输出。
对于需要输入的命令行应用程序,选择项目 > 运行设置 > 在终端运行。要指定要使用的终端,选择 首选项 > 环境 > 系统。要使用 内部终端,选择 首选项 > 终端 > 使用内部终端。
在 Windows 中:对于控制台应用程序和图形用户界面应用程序,输出显示方式不同。
对于 qmake 项目,.pro 文件中的 CONFIG += console
设置指定了应用程序将使用其他运行时编译为控制台应用程序。
这是 CMake 项目的标准行为。要在 Windows 上创建图形用户界面应用程序或在 macOS 上创建应用程序包,您必须在 CMakeLists.txt 文件中的 qt_add_executable 命令中指定 WIN32
或 MACOSX_BUNDLE
属性。
运行控制台应用程序时,您可以在调用应用程序的控制台窗口中查看输出。如果调用应用程序是一个图形用户界面应用程序(例如,Qt Creator 的发布版),则会打开一个新的控制台窗口。对于此类应用程序,qDebug()
及相关函数使用标准输出和错误输出。
我们建议您对控制台应用程序选择 项目 > 运行设置 > 在终端运行。
对于GUI应用程序,qDebug()
和相关函数使用Windows API函数 OutputDebugString()
。输出显示在 应用程序输出 中。然而,Qt Creator只能同时显示一个来源的输出。您可以使用外部调试输出查看器,例如Windows的DebugView 来显示GUI应用程序的输出。
关于新特性的问题
请求的特性将会实现吗?
如果是计划中的特性,您可以在任务跟踪器中看到它。如果特性已经被实现,它将在即将发布的版本的 变更文件 中被提及。
为什么Qt Creator不使用标签页(tab)为编辑器?
这个问题时不时会出现,所以我们仔细考虑了。以下是我们不使用标签页的主要原因:
- 标签页无法适应更多的编辑器打开情况。当有5到6个编辑器打开时,标签页还可用,但当有10个编辑器时,标签页变得不便,如果需要比标签栏更多的水平空间,界面则无法正常工作。
- 标签页不能适应您的工作集。
- 常见的解决方案是允许用户重新排列标签页。现在用户必须管理标签页,而不是编写代码。
- 标签页强制您限制打开的编辑器数量,否则您会感到混乱。
考虑以下用例:开发者想要切换编辑器。
事实上,开发者并不想切换编辑器,但他们可能必须这样做以完成任务。我们需要确定任务是什么,以提供开发者更好的导航方式。
在许多用例中,一个共同的因素是在打开的一组文件中切换编辑器。当在文件A和B上工作时,有时需要查看文件C。用户可以按 Ctrl+Tab 在文件间切换,并确保根据文件类型在正确的编辑器中打开文件。列表按最后使用排序。
通常,用户也会对相关的多个类或函数进行操作,即使它们定义或声明在不同的文件中。Qt Creator为此提供了两个快捷键:F2 来跟踪光标下的符号,以及 Ctrl+Shift+U 来查找引用。
此外,开发者可以
- 按 F4 在头文件和源文件间切换。
- 按 Alt+Left 在导航历史中向后移动。
- 使用位置导航(Ctrl+K)来简单地告诉Qt Creator去哪里。
位置导航器可以用来打开文件,但打开文件只是完成任务的一种步骤。例如,考虑以下用例:在SomeClass中修复AFunction,它来自someclass.cpp/someclass.h。
在使用标签页的用户界面中,开发者会在标签栏中搜索someclass.cpp,然后再搜索 ::AFunction
,最后发现该函数不在该文件中。然后他们会再次在标签栏中搜索someclass.h,发现该函数是内联的,修复问题,然后忘记他们从哪里来。
在使用Qt Creator的情况下,开发者可以输入 Ctrl+K m AFun
来查找该函数。通常,他们只需要输入函数名的3到4个字符。然后可以修复问题并按 Alt+Back 返回他们原来的位置。
其他位置导航器过滤条件包括 c
用于类,:
用于所有符号,以及(归功于社区贡献).
用于当前文件中的符号。
©2024 本文档中包含的Qt公司文档贡献是各自所有者的版权。提供的文档是根据自由软件基金会发布的 GNU自由文档许可版1.3 许可条款授权使用的。Qt及其相应标志是芬兰和/或其他国家的Qt公司商标。所有其他商标均为其各自所有者的财产。