随笔分类 - QT
摘要:有些时候要给应用添加自定义的协议来通过浏览器唤起引用。 1. 注册协议 在Mac上的实现方式是在Info.plist中添加url schema来向系统注册自定义协议,在浏览器中访问注册过的协议,系统会打开app。 2. 捕获链接 只是注册协议并不能得到用户的具体请求,还需要通过代码来读取系统链接的打
阅读全文
摘要:在工作中遇到这样一个需求,将自己的窗口跟随目标窗口移动,而且总是置于目标窗口的下面。 Mac平台使用cocoa的代码,首先获取目标窗口的句柄id,并读取bounds,然后将自己的窗口设置为相同的数值。然后设置窗口顺序。 windows平台也是类似的
阅读全文
摘要:环境要求 系统需要已安装Python3,PyQt5,Qt5 设置外部工具 本文是在Mac系统下使用PyCharm编辑器,Windows环境也是类似的。主要添加3个外部工具,用于编辑和转换ui文件,转换qrc文件 打开软件设置界面,选择 [Tools] [External Tools]并新建新的工具。
阅读全文
摘要:在Mac下引用第三方Framework时,需要在pro中添加rpath引用,共有3个要点: 1. 指定rpath路径, 2. 指定Framework路径, 3. 指定引用的Framework。 例如
阅读全文
摘要:如果要添加alias到IncludePath中,直接通过右键来创建alias是不可行的。 需要通过命令名来创建。例如:
阅读全文
摘要:问题 Windows系统提供了字体缩放功能,当字体缩放比率变大时,应用程序也需要做相应的调整来匹配显示结果。 Qt提供了一个熟悉来设置是否自动缩放。 但在启用这个属性后,只能是整数倍的缩放,比如125%是1倍,150%是2倍。这种效果是不能满足需求的。 解决方案 可以使用Windows提供的方法 来
阅读全文
摘要:可以下载源码自己编译,也可以直接通过pip3直接安装。 因为Mac系统默认是安装Python2的,需要首先安装Python3,具体的步骤如下。 1. 安装Xcode。这个没什么好说的,Mac上开发大多离不开这个,打开AppStore下载安装即可。 2. 安裝 Homebrew 在Terminal中执
阅读全文
摘要:读取txt文件时,很多时候无法获取文件的编码格式。如果直接进行使用,则有可能出现乱码。需要在使用前将其转为Unicode(Qt的默认编码格式)。 虽然实际的编码格式种类非常多,但平常主要使用的有GBK与UTF-8两种。可以依次尝试转换,如果转换出现无效字符则认为不是该种编码格式。
阅读全文
摘要:主要是通过设置属性实现。 下面的是基于Qt的代码,同时不显示窗口标题和icon。
阅读全文
摘要:Qt的默认的窗口和Windows原生相同,所有的功能也很完整。但启用了FramelessWindowHint标志之后,点击窗口底部的工具栏无法隐藏窗口。 解决的方案是增加一个标志 Qt::FramelessWindowHint
阅读全文
摘要:打包脚本的流程和自动打包基本相同: 1. 编译软件 2. 拷贝需要的内容 3. 代码签名 4. 打包成安装文件 5. 再次签名,并将安装文件名称改成需要的格式 编译软件需要初始化vs的运行环境,如 然后开编译。 编译完成,拷贝文件,使用signtool对软件进行签名, 最后将其修改为需要的命名风格,
阅读全文
摘要:发布Qt程序的时候需要给程序添加图标和信息描述。 在Windows平台下,可以在pro文件中添加一个rc文件来描述软件的信息。 rc文件包含的描述信息如下 注意:rc文件的格式需要为无Bom头的UTF-8或者ANSI,包含Bom的UTF-8会导致编译失败。 如果在pro中仅仅添加一个icon文件,则
阅读全文
摘要:Qt的某些控件在输入文本的时候需要关闭输入法。如密码输入框输入密码的时候不希望显示输入法的输入条。 不能简单的通过QValidator来实现,因为此时仅仅修改了输入框接受的文本内容,输入法的输入条仍然会出现。 可以通过QWidget的InputMethod方法来实现,在应用程序查询控件是否支持输入法
阅读全文
摘要:1. 注释从“#”开始,到这一行结束。 2. 模板变量告诉qmake为这个应用程序生成哪种makefile。下面是可供使用的选择:TEMPLATE = appA> app -建立一个应用程序的makefile。这是默认值,所以如果模板没有被指定,这个将被使用。B> lib - 建立一个库的makef
阅读全文
摘要:先上效果图,实现方法就是设置WA_TranslucentBackground属性,并禁止窗口自动填充背景。#include #include #include class CMainWindow : public QMainWindow{public: CMainWindow(QWidget*...
阅读全文
摘要:lldb中默认没有对于QString的支持,需要自己添加。1. 在用户目录下创建~/.lldb文件夹,并在文件夹中创建`qstring.py`文件。qstring.py中内容为:import lldb def utf16string_summary(value, *rest): ...
阅读全文
摘要:为了避免主界面的卡顿等问题,所有的网络操作都应该放到工作线程中执行。这种需求带来的一个问题就是编码的不方便,如果要把工作的内容单独写到一个类或方法里面然后创建线程来执行会给编码和维护带来很大的麻烦。QT提供了一种线程池技术来解决这个问题,把一些需要在单独线程中执行的操作放到线程池中执行,可以避免手动...
阅读全文
摘要:// 设置整个面板为透明QDialog dailog;dailog.setWindowFlags(Qt::FramelessWindowHint); // 去除页面边框dailog.setFixedSize(150, 100);QPalette pl = dailog.palette();...
阅读全文

浙公网安备 33010602011771号