QT
文章平均质量分 66
Li Xiaolin
学生
展开
-
Qt官方开发环境生成的exe发布方式--使用windeployqt
Qt 官方开发环境使用的动态链接库方式,在发布生成的exe程序时,需要复制一大堆 dll,如果自己去复制dll,很可能丢三落四,导致exe在别的电脑里无法正常运行。因此 Qt 官方开发环境里自带了一个工具:windeployqt.exe。以官方 Qt 5.4.0+MinGW 开发环境为例,从开始菜单--》Qt 5.4.0--》5.4--》MinGW 4.9 (32-bit)--》Q转载 2017-06-16 22:08:03 · 296 阅读 · 0 评论 -
【Qt】错误:'connect' was not declared in this scope 解决方法
这种错误主要出现在在非继承QObject的类中或者一般函数中使用connect导致,原因是connect是QObject的一个static方法。将connet替换为QObject::connect即可。原创 2018-02-28 12:02:35 · 30552 阅读 · 0 评论 -
【Qt5】写一个更容易鼠标点击并带游标的QSlider的子类
2018.02.12更新优化了游标的控件窗口属性,游标不再受任何组件的范围限制;优化了游标出现的位置;优化了鼠标点击得到的值,四舍五入得到。2018.02.22更新使用自定义信号sig_triggeredToValue,控件被触发时发射此信号,传递出滑块变化后的值,不再使用sliderMoved()信号。避免了键盘控制滑块移动不能产生sliderMoved()信号的问题。2018.04.10更新重...原创 2018-02-09 15:47:22 · 1860 阅读 · 0 评论 -
【C++】【Qt】位兼容的枚举写法,可以按位或
用于作为有多种属性的方法的输入参数具体见Qt代码#include <QCoreApplication>#include <QDebug>class TestEnumClass{public: enum TestEnum { TEST_ALL_NO = 0x0, TEST_A = 0x0001, TES...原创 2018-03-12 22:23:20 · 1774 阅读 · 0 评论 -
【Qt5】Windows下配置程序的产品、公司、版权、版本号等详细信息
在工程的pro文件中加入下面的配置# 配置图标(仅Windows有效)# 本程序使用两个图标,这样其快捷方式可以有更多选择,也可以给关联文件提供图标选择RC_ICONS += icon1.ico \ icon2.ico# 版本号VERSION = 3.0.0# 语言# 0x0004 表示 简体中文# 详见 https://msdn.microsoft.co...原创 2018-03-30 22:19:59 · 2949 阅读 · 0 评论 -
【Qt】状态机框架
英文原文链接:http://doc.qt.io/archives/qt-4.8/statemachine-api.html状态机框架提供用于创建和执行状态图的类。状态图的概念和符号基于Harel的Statecharts: A visual formalism for complex systems,这也是UML状态图起源。状态机执行的语义是基于State Chart XML (SCXML)。状态图...翻译 2018-03-31 09:23:20 · 2027 阅读 · 0 评论 -
【Qt5】QMake手册
官方Qt5的QMake手册连接http://doc.qt.io/qt-5/qmake-manual.html转载 2018-03-26 13:09:48 · 802 阅读 · 0 评论 -
【Qt5】频繁调用update()若干时间后无法自动重绘界面的问题
最近在项目中遇到了这样的问题:程序的结构:主线程用于界面控制,线程1用于生成显示内容,线程2用于精确控制在正确的时刻控制界面显示生成的内容。实现方式:在线程2中直接调用显示控件的update()方法,让主线程重绘。运行效果:运行开始后的一段时间能够正常工作,但是几个小时后,会出现调用update()方法不能让控件重绘,显示控件一直显示旧的内容。但是可以通过缩放界面窗口等方法,让窗口自己重绘,能显示...原创 2018-03-29 10:06:32 · 6657 阅读 · 9 评论 -
【Qt5】使用QAudioOutput播放ffmpeg解码出的音频
使用QAudioOutput播放ffmpeg解码出的音频音频数据格式要想播放一段音频裸流,除了需要数据本身以外,还需要规定这段数据的格式才能正确播放。其中声道数、采样率、采样数据类型是最基本的格式内容。例如,一段声道数为2,采样率为48000Hz,数据类型为8位无符号整形的音频裸流,储存方式为:声道0的采样点0声道1的采样点0声道0的采样点1声道1的采样点1声道0的采样点2声道1的采样点2以此类推...原创 2018-05-26 22:53:57 · 4310 阅读 · 3 评论 -
【Qt5】关于Qt5对xp的兼容说明
首先是编译器,Qt5可以使用msvc编译器和mingw编译器,而msvc的编译器从2015开始就对xp的支持变差,就算通过各种编译配置命令设置,能xp下运行,但是会很可能发生一些奇奇怪怪的bug。而mingw编译器没有这个问题,同一个版本可以在xp win7 win10各个系统使用,而无需其他配置。另外,Qt5目前有两个长期支持版本(Long Term Support)Qt5.6和Qt5.9,原创 2018-01-28 12:46:56 · 11432 阅读 · 2 评论 -
【Qt5】判断文件夹是否存在并新建文件夹
比如要新建这么个文件夹 F://学习资料/考研数学模拟卷可以使用如下代码: QString dir_str = "F://学习资料/考研数据模拟卷"; // 检查目录是否存在,若不存在则新建 QDir dir; if (!dir.exists(dir_str)) { bool res = dir.mkpath(dir_str); qDebug() << "新建目录是原创 2018-01-21 17:01:39 · 17320 阅读 · 4 评论 -
记录Qt之QOpenGLWidget的一个BUG
QOpenGLWidget在系统睡眠唤醒后有bug原创 2018-01-02 14:11:35 · 3528 阅读 · 7 评论 -
QtAV的编译
最近打算使用QtAV来代替VLC,制作自己的播放器。这是QtAV项目的github主页本人系统win7 64位,编译环境为Qt 5.9.1、Qt Creator 4.3.1 ,编译器为MinGW 5.3.0 (32-bit),qt下载传送门。首先下载QtAV源码和其依赖库,其地址可以在github的wiki文档上找到,可能官方地址下载缓慢,我也对他们进行了打包:QtAV源码,依赖库(等原创 2017-07-17 14:53:28 · 1540 阅读 · 0 评论 -
QObject的Thread Affinity翻译
QObject的Thread Affinity翻译翻译 2017-08-08 21:18:23 · 252 阅读 · 0 评论 -
QThread的细节描述(Detailed Description)翻译
QThread类提供了跨平台的线程管理方式。翻译 2017-08-09 10:28:18 · 711 阅读 · 0 评论 -
继承QObject类或其派生类时构建失败的解决方法
加上Q_OBJECT,手动删除所有编译和连接生成的文件即可。原创 2017-08-10 10:53:12 · 1009 阅读 · 0 评论 -
Qt中的多线程技术
Qt中的多线程技术可以参考这篇文档,来选择合适的多线程方案。翻译 2017-08-11 10:05:59 · 852 阅读 · 0 评论 -
Qt日志输出至文件
节选自http://blog.sina.com.cn/s/blog_a6fb6cc90101guc5.html#include #include #include #include #include #include #include #define LOGFILEMAX 10000 void outputMessage(QtMsgType typ转载 2017-08-11 21:57:51 · 666 阅读 · 0 评论 -
QTimer与主线程
在需要精确的定时操作下,定时器和相关操作一定要放到单独线程中,如果放在主线程里,用户对界面的操作会导致定时器的槽函数不能及时响应,定时操作不精确原创 2017-11-10 17:47:45 · 4762 阅读 · 0 评论 -
QOpenGLWidget绘制2D的方法
可以重新实现paintGL(),在其中通过QPainter绘图。通过update()重绘。也可以使用通常QWidget的paintEvent()方法实现绘图,通过update()重绘。下面是官方文档的节选:Painting TechniquesAs described above, subclassQOpenGLWidget to render pure 3D content原创 2017-08-13 13:35:29 · 5966 阅读 · 0 评论 -
Linux发布Qt程序
已经在Ubuntu上实测没有问题。创建脚本copylib.sh ,并执行 chmod 777 copylib.sh #!/bin/bashLibDir=$PWD"/lib"Target=$1lib_array=($(ldd $Target | grep -o "/.*" | grep -o "/.*/[^[:space:]]*"))$(mkdir $LibDir)for...原创 2019-04-09 15:30:25 · 535 阅读 · 0 评论