标签 [Qt]

5
Qt 在 Windows 下默认字体比较丑,但是我们有办法修改它
一直觉得 Qt 在 Windows 系统上的默认字体不太好看,不过自己写程序时自己去指定字体也很方便,就没怎么在意。这几个月专门用 Qt 写了一些程序,发现这还真的是个问题,因为包括官方的 Qt Creator 在内,都没有开放给用户自定义默认字体的设置,天天看着实在不怎么舒服。本来 Windows 系统是允许用户自定义桌面字体的,Win10 不知是出于去桌面化还是什么考虑,把这个功能又拿掉了。
QT 5.11.1 nativeEvent 实现有 bug, 好在 5.11.2 已经修正了
昨天碰上一个挺郁闷的问题。我们需要在 Qt 程序里处理某些原生 Windows 消息,本来这应该是个挺简单的事情。Qt 早期版本有一个专门的 winEvent 事件,但是用新版时发现这个函数已经换成了 nativeEvent,如果不需要关注跨平台的话,这个方法也没多大差别。重写该函数后,运行时方法倒是触发了,但从参数获得的却是一些匪夷所思的消息标志,简直百思不得其解。仔细看代码也发现不了什么问题,尝试了多种不同写法,无果。通过网络搜索,发现还有另一种方法是通过消息过滤器,即从 QAbstractNativeEventFilter 继承子类。按照这个路子走倒是正常了。因为时间紧,也没来得及深入思考,把程序直接提交了事。
Qt 5.11 生成文档需要 LLVM
最近,Qt 版本 5.11 发布了(变更内容可以看这里)。我也花了点时间下载编译了一回。原本以为只是一个小版本的变更,对于已经多次自己编译过 Qt 的我来说应该是轻车熟路(当然编译花费的时间依旧漫长)。没想到的是,主体程序的编译虽然很顺利,但编译文档时却出错了,提示 qdoc 不是合法的命令。到程序目录下面看,确实没有生成 qdoc.exe。 这是怎么回事?到官方网站上查找,发现这样的内容: Note: From Qt 5.11, QDoc requires clang from LLVM 3.9 for parsing C++ header and source files, and for parsing the function signatures in \fn commands. See Installing clang for QDoc for details. 原来编译文档现在需要 LLVM/CLang 了。按照官方描述的信息,下载 并安装 LLVM 当前版本,并设置 LLVM_INSTALL_DIR 环境变量到安装目录,然后再重新编译。在失败的目录上重新编译似乎是不行的,最好是删除原来的内容,配置好环境后,再整个重新编译。 再次经历漫长的编译时间,这次一切正常,qdoc 和所有 .qch 文件全部生成成功。
Qt5.9.1 修正了编译问题
Qt 5.9.0 今年5月份已经发布了,但我下载以后,用 Visual C++ 2015编译却不成功,出现了一些奇奇怪怪的问题。当时因为时间有限,并且也没有资源可供参考(太新了),因此也就弃坑没有深究。 这两天偶然间发现 Qt 5.9.1 已经放出来了(看目录信息,真正放出来的时间应该是6月底)。下载回来用同样方法再编译,这次非常顺利的通过了。看起来上个版本确实存在问题,这次修正了。CHANGELOG 很简单,只说这是个 bug 修复版本,没有更详细的记录。 不过编译已经通过,并且 5.9 是 LTS 版本,我可以考虑逐渐把以前用 5.6/5.8 编写的程序迁移过来了。和 5.6~5.8 有一点不同的是,mkspec 中现在 msvc 不再像以前那样区分版本号(win32-msvc20XX),现在统一为 win32-msvc。在 configure 指令中简单调整一下就好。
Qt 直接定位下载地址
Qt 5.9 发布了,这是一个LTS(长期支持)版本,应该值得好好研究。 然而不得不说,最近几年从 Qt 官网明显感觉到商业化味道越来越重了,下载 SDK 要你先填一堆个人资料,让人感觉很不舒服,而在不同页面跳来跳去的体验也让人抓狂(速度问题我就不说了,这个锅大概应该让墙来背,不怪你)。 好在 Archive Repository 现在还是可以直接访问的。如果有不想跟官网捉迷藏、或者和我一样,不希望为了下载一个开发包而把个人资料交出去的同学,请温柔地点击如下地址: Qt Archive Repository