QT 5.11.1 nativeEvent 实现有 bug, 好在 5.11.2 已经修正了
昨天碰上一个挺郁闷的问题。我们需要在 Qt 程序里处理某些原生 Windows 消息,本来这应该是个挺简单的事情。Qt 早期版本有一个专门的 winEvent
事件,但是用新版时发现这个函数已经换成了 nativeEvent
,如果不需要关注跨平台的话,这个方法也没多大差别。重写该函数后,运行时方法倒是触发了,但从参数获得的却是一些匪夷所思的消息标志,简直百思不得其解。仔细看代码也发现不了什么问题,尝试了多种不同写法,无果。通过网络搜索,发现还有另一种方法是通过消息过滤器,即从 QAbstractNativeEventFilter
继承子类。按照这个路子走倒是正常了。因为时间紧,也没来得及深入思考,把程序直接提交了事。
JetBrains Rider 介绍
新站点启用: 2018 年 09 月
在 JetBrains 系列 IDE 中更新 Git 登陆密码
Syncfusion Succinctly 系列电子书 App

我曾在 博客文章 中介绍过 Syncfusion Succinctly 系列免费电子书。看起来这个系列群众反响不错,乃至于该公司为本系列制作了一个移动端 App。过去我们需要从网页上下载,然后再用本地的 PDF/EPub 阅读器打开观看。 现在,你也可以从手机或平板上直接阅读系列书籍了。
《Developer Should Abandon Agile》 解读
前言
最近,敏捷开发的代表人物、也是 Agile manifesto 的作者之一 Ron Jeffries 发表了文章 Developer Should Abandon Agile(中译:开发者应该放弃敏捷)。InfoQ 也有这篇文章的 中文新闻。以作者的身份表达这样的观点,无疑是很有震撼性的,然而(我认为) InfoQ 的新闻并没有完整地表达清楚作者的思想,读起来有一种雾里看花的感觉。
这里,我试图从自己的角度,尽可能全面地传达 Ron 大叔原文中的观点,同时也想表达我自己的一些个人看法。当然,我会明确的将两者区分开,以下除特殊说明外,原文将统一以引用的形式标注出来。
PyInstaller 系列 - Hook 机制
在本系列前面的文章中,我们已经提到过 PyInstaller 的 Hook,不过尚未详细说明它是怎么回事。本文就将介绍关于 Hook 的知识。
注意,本文讲述的内容属于比较高级的部分,一般用户可以如果没有问题的话,可以不用特意去关心它。但是在如果发生下列情况之一,你可能还是需要对 Hook 有点基本的了解:
PyInstaller 系列 - 规格文件
在本系列的 基本用法 篇中我们曾说过,PyInstaller 在生成文件的同时会创建一个相应的 .spec 文件。其实,.spec 文件才是生成过程的真正核心。它本质上是一个特殊的 Python 脚本,其中记录了生成所需的指令,和包管理所使用的 setup.py 在某种程度上有些相似。当熟悉它的格式以后,你也可以按自己的意愿去修改此文件,并且某些特殊场景下修改 .spec 文件是最简便的方法。本文就讲述 spec 文件的格式、原理和一些常用使用案例。
PyInstaller 系列 - 单目录和单文件模式
在 本文系列前一篇 - 简介 中,我们介绍了 PyInstaller 的入门知识。本文重点讲解一下 PyInstaller 的单目录(onedir)和单文件(onefile) 模式,并解释我个人一直强调的观点:不应该使用单文件模式。