专业网站快速,云县网站建设 云县网,制造网站的软件,网店网页设计培训最近笔者在MacOS中使用Qt Creator开发Qt程序时遇到了一些问题#xff0c;在网上查了不少资料#xff0c;都没有找到解决方案#xff0c;只有自己进行研究摸索了#xff0c;今天晚上终于将目前遇到的问题全部解决了#xff0c;特记录下来分享给大家。
笔者使用的是MacOS 1…最近笔者在MacOS中使用Qt Creator开发Qt程序时遇到了一些问题在网上查了不少资料都没有找到解决方案只有自己进行研究摸索了今天晚上终于将目前遇到的问题全部解决了特记录下来分享给大家。
笔者使用的是MacOS 10.13.6和MacOS 10.15.7前者为MBP笔记本后者为虚拟机。笔者之前在虚拟机中安装过Qt5.14.2在使用过程中并没出现最近遇到的问题但最近在MBP笔记本中安装Qt5.14.2却出现了以下问题
Qt Creator界面设计器中的菜单不显示Qt菜单在MacOS中不显示使用CMake构建系统时智能提示有问题Qt Creator中不能跳转打开Qt的头文件报警告 Warning: The code model could not parse an included file, which might lead to incorrect code completion and highlighting, for example. 点“Show Details”按钮可以看到一些错误比如
error: QtWidgets/qtwidgetsglobal.h file not found 下面笔者就从MacOS下的Qt 5开发环境的安装与配置开始介绍然后再介绍如何解决上述问题。
一、下载Qt安装包
MacOS版本下载 qt-opensource-mac-x64-5.14.2.dmg
二、安装
1. 安装Xcode
在安装Qt之前需要先安装Xcode如果已经安装好了Xcode.app则使用下面命令选择Xcode
$ sudo xcode-select --switch /Applications/Xcode.app可以使用下面命令查看选择的Xcode
$ xcode-select -print-path
/Applications/Xcode.app/Contents/Developer如果没有安装过Xcode.app则可以使用下面的命令安装Xcode命令行工具
xcode-select --install2. 安装Qt
安装时需要登录Qt账号如果不想登录可以在安装前断开网络链接则安装程序会自动跳过登录进行安装。 默认会安装在用户目录下的Qt5.14.2中也可以更改目录。
在选择安装组件的时候可以根据需要进行选择 笔者的MBP笔记本磁盘空间不大所以仅选择了如下几项需要1.44G的空间。 安装好后就可以运行Qt Creator了 三、创建项目
1.选择Qt Widgets Application 2. 选择CMake构建系统 3. 选择类信息 4. 选择翻译文件及语言
注意这步非常重要默认的情况下是没有语言如果想要编写中文界面一定要选择中文否则就会遇到中文菜单不能显示的问题 5. 选择Qt包 6. 选择版本控制系统
在Summary页可以选择版本控制系统也可以保持默认不选择 四、出现问题、解决问题
前面创建好项目后就可以进行项目开发不过笔者遇到了前述问题下面一个一个来解决
1. Qt Creator界面设计器中的菜单不显示 菜单中应该是文件的但是在界面设计器中显示不出来而且菜单设计栏最右边出现了一个双箭头按钮这是因为菜单的默认字体太大了笔者的默认为14号字体。 在属性中将menubar的字体设置小点比如12号就可以正常显示了 2. Qt菜单在MacOS中不显示
前面我们在界面设计器中将菜单的字号设置成12号后界面设计器中可以正常显示了但是运行后看不到菜单 这是因为菜单项的文本是英文也没有响应事件。需要将菜单项设置成中文前面创建项目时需要选择翻译文件及语言为中文 再将退出的响应事件添加上 再次运行就要以看到菜单了 关于此问题网上很多资料都是说将menubar的nativeMenuBar开关关掉 虽然可以但是并非MacOS的习惯。运行效果如下 3. Warning: The code model could not parse an included file
报警告 Warning: The code model could not parse an included file, which might lead to incorrect code completion and highlighting, for example.
智能提示不能正常工作Qt Creator中不能跳转打开Qt头文件Code Model在解析源码时报 Lexical or Preprocessor Issue error: QtCore/QVariant file not found error: QtWidgets/QAction file not found error: QtWidgets/QApplication file not found error: QtWidgets/QMainWindow file not found error: QtWidgets/QMenu file not found error: QtWidgets/QMenuBar file not found 笔者在虚拟的MacOS 10.15.7中是没有出现但在MBP中却出现了笔者查过一些资料网上很多的解决方案是不加载ClangCodeModel插件 这就是一种掩耳盗铃的做法让Qt Creator不再报警告但是智能提示也不能正常工作严重影响编码。
笔者想过编译器版本的问题MacOS 10.13是Clang 9
$ clang -v
Apple LLVM version 9.0.0 (clang-900.0.39.2)
Target: x86_64-apple-darwin17.7.0
Thread model: posix而MacOS 10.15是clang 12:
$ clang -v
Apple clang version 12.0.0 (clang-1200.0.32.29)
Target: x86_64-apple-darwin19.6.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin但是编译运行都没问题只是智能提示有问题。智能提示是使用的libclang或者clangd都是基于clang的肯定就是ClangCodeModel未能正确使用编译器在编译时的配置导致的。
对比查看Code Model相关信息 没问题的Code Mode信息如下所示 有问题的Code Mode如下所示 通过对比可以看到没问题的有多个FrameworkPath项其中有指向Qt安装路径的~/Qt5.14.2/5.14.2/clang_64/lib而有问题的却没有所以QT的头文件都会找不到
在MacOS中Qt安装后的是以framework的形式存在的 其中的头文件路径中并没有QtCoreQtWidgets这样的目录 所以在MacOS中需要向编译器指定参数-iframework这样编译器就可以自动搜索头文件路径了 Qt Creator中Code Model信息是无法手动修改的只能查看。它是通过Qmake或者CMake构建系统生成的信息来解析的。qmake没问题那就很有可能是CMake的问题了。
再次对比CMake的版本发现没问题的是CMake 3.25.1而有问题的则是新版本3.28.1我回退CMake版本到3.25.1版本问题解决更新到目前最新的3.29.1依旧有问题。所以在新版本未解决之前还是继续使用老版本吧
当然这也许不是CMake的问题而是CMake由于版本的升级可能一些输出发生了变化而Qt Creator版本比较老了不支持新版本了。感兴趣的读者可以继续深究
目前MacOS 10.15.7版本使用Qt 5.14.2开发就只有下面这个问题了:
Unable to create basic Accelerated OpenGL renderer.
Unable to create basic Accelerated OpenGL renderer.
Core Image is now using the software OpenGL renderer. This will be slow.查资料说是由于Apple从10.14开始把OpenGL的API移除了所以有此问题。目前还没有解决方案知道的朋友可以留言分享
如果此文对你有帮助欢迎点赞收藏