Qt
子建莫敌
热爱生活,拥抱技术
展开
-
自定义QPushButton,通过设置icon,在不同状态下显示不同的图标
默认QPushButton设置icon后,当鼠标hove或者press时,图标不会变更为对应状态的图片。通过重写按钮,设置图标值,实现不同状态对应不同图标原创 2024-08-29 09:35:39 · 320 阅读 · 0 评论 -
完美解决ubuntu系统QtCreator无法输入中文
在Ubuntu18 上安装搜狗输入法,启用fcitx输入系统之后Qt Creator 无法输入中文,原因是缺少fcitx的支持库libfcitxplatforminputcontextplugin.so。原创 2023-08-02 16:13:05 · 2096 阅读 · 0 评论 -
Qt生成不重复的随机数
此方法可以在循环中产生不重复的随机。可以保证每次生成不一样。原创 2023-05-12 18:39:29 · 371 阅读 · 0 评论 -
【亲测可用】安装Qt提示“无法下载存档 http://download.qt.io/online/qtsdkrepository...“
安装Qt提示“无法下载存档 http://download.qt.io/online/qtsdkrepository..."原创 2023-04-03 11:18:48 · 11441 阅读 · 13 评论 -
Qt读xml文件
QXmlStreamReader类通过简单的流式API为我们提供了一种快速的读取xml文件的方式。他比Qt自己使用的SAX解析方式还要快。所谓的流式读取即将一个xml文档读取成一系列标记的流,类似于SAX。而QXmlStreamReader类和SAX的主要区别就是解析这些标记的方式。使用SAX解析时,应用程序必须提供一些处理器(回调函数)来处理来自解析器的一系列的所谓的xml事件,不同的xml标记会触发不同的事件,从而进行相应的处理。原创 2023-03-11 15:47:34 · 2022 阅读 · 0 评论 -
Qt三种方式远程连接MySQL数据库(ODBC方式、DSN方式、直连方式)
说明:通过Windows操作系统的ODBC数据源(64位)创建用户DSN或者系统DSN时,请选择“MySQL ODBC 8.0 Unicode Driver”。二、DSN方式远程连接MySQL数据库(程序方式创建ODBC)一、ODBC方式远程连接MySQL数据库。三、直连方式远程连接MySQL数据库。原创 2022-12-13 23:05:02 · 3272 阅读 · 1 评论 -
QT 在线安装速度慢解决方案
qt5.15之后的版本官方不再提供独立的安装包了,官方提供了一个安装工具进行在线安装,这个和vs2019通过工具进行安装是类似的。原创 2022-12-13 13:38:36 · 466 阅读 · 1 评论 -
Qt5.15+MinGW编译32位MYSQL驱动
步骤:第一步,安装MYSQL5.7MySQL官网下载的最新版本的*.msi安装程序,注:下载的Qt如果是32位,需要下载安装32位数据库,已经32位MYSQL驱动需要C的connector而不是C++,即装x86的C connector。第二步,使用QtCreator编译MYSQL驱动插件首先,打开源码MYSQL插件的工程(我的路径E:\Qt\qt-everywhere-src-5.15.0\qtbase\src\plugins\sqldrivers\mysql)。然后,修改pro文件原创 2021-03-31 11:30:54 · 535 阅读 · 0 评论 -
Windows下PyQt5环境的搭建
首先安装 python3, 这个不必多说了,不会的自行百度安装 PyQt5在 cmd 中输入pip install PyQt5 -i https://mirrors.aliyun.com/pypi/simple用到了 阿里 镜像源,下载速度应该很快在 cmd 中进入 python3 交互环境 import PyQt5 没有报错,说明安装成功安装qtdesinger (qt设计师)这是一个图形化界面设计的软件, 也就是所谓的 拖拖拽拽 就可以设计好一个软件,可以减少软件布局的一部分时.原创 2021-03-04 19:54:03 · 149 阅读 · 2 评论 -
Qt窗口点击窗口外区域自动关闭窗口
Qt自动关闭窗口的方式:利用 Qt::Popup,可以实现点击窗口外区域自动关闭窗口; 利用 Qt::WA_NoMouseReplay,可以避免重复触发窗口外的鼠标点击事件(仅关闭窗口); 利用 activeWindows(),可以解决Qt::Popup属性的窗口无法输入中文的问题(show之后调用);问题:点击其他区域,回关闭窗口,但点击到触发窗口显示的按钮,窗口被关闭了。解决办法: bool MyWidget::event(QEvent * e){ if (QEvent::Sh原创 2021-02-01 20:28:25 · 2358 阅读 · 0 评论 -
Qt程序无法再macOS11上使用的解决办法
qputenv("QT_MAC_WANTS_LAYER", "1");原创 2021-01-18 15:01:44 · 2295 阅读 · 5 评论 -
Qt 在 Windows 下默认字体比较丑,但是我们有办法修改它
一直觉得 Qt 在 Windows 系统上的默认字体不太好看,不过自己写程序时自己去指定字体也很方便,就没怎么在意。这几个月专门用 Qt 写了一些程序,发现这还真的是个问题,因为包括官方的 Qt Creator 在内,都没有开放给用户自定义默认字体的设置,天天看着实在不怎么舒服。本来 Windows 系统是允许用户自定义桌面字体的,Win10 不知是出于去桌面化还是什么考虑,把这个功能又拿掉了。当然,通过修改注册表还是可以修改系统默认字体的,而且我知道确实有这样的第三方工具。不过鉴于 Win10 对桌面转载 2021-01-08 11:06:33 · 2447 阅读 · 0 评论 -
Qt pro文件中区分平台
unix { TARGET = appname}macx { TARGET = appname2}win32 { TARGET = appname3}原创 2020-12-16 10:14:46 · 1048 阅读 · 0 评论 -
qt使用http下载文件(断点续传)
最近使用Qt需要用到http下载文件,其中关于断点续传的问题被困扰了,在这里记下来。1,Qt使用http实现下载主要用到的3个类QNetworkAccessManager,QNetworkRequest,QNetworkReply。2,主要用到的类的信号与槽(个人理解)如下: m_reply = m_networkAccessManager->get(request); //请求下载connect(m_reply, SIGNAL(downloadProgress(qint64, q...原创 2020-12-15 21:07:18 · 3548 阅读 · 1 评论 -
Qt 之 HTTP 请求下载(支持断点续传)
https://blog.csdn.net/GoForwardToStep/article/details/52704464本文旨在修正上述博客遇到的断点下载问题:断点之后下载的文件偏大解析:下载过程中,downloadProgress(qint64, qint64)信号触发的次数和readyRead()信号触发的次数不一样。onDownLoadProgress(qint64, qint64)槽中接收的字节数滞后了。解决办法:m_bytesCurrentReceived为当前下载的文件大小原创 2020-12-15 20:57:39 · 618 阅读 · 2 评论 -
Qt项目生成map和pdb文件
默认情况下,Qt项目在window系统发布版本不生成map/pdb文件。将以下内容添加到.pro文件中:QMAKE_LFLAGS_RELEASE+=/MAPQMAKE_CFLAGS_RELEASE += /ZiQMAKE_LFLAGS_RELEASE +=/debug /opt:ref原创 2020-12-03 00:08:29 · 1691 阅读 · 1 评论 -
QTabWidget的样式
Tab标签所在行的样式QTabWidget::tab-bar { alignment:left; top:3px; left:5px; right:5px;}设置QTabWidget 的Tab标签下面窗格的样式QTabWidget#tabwidget_DevMang::pane {border-top: 3px solid black;border-...原创 2020-11-30 13:55:27 · 3432 阅读 · 0 评论 -
qt 5.14.2 (vs2017)pdb文件目录
https://download.qt.io/online/qtsdkrepository/windows_x86/desktop/qt5_5142/qt.qt5.5142.debug_info.win64_msvc2017_64/原创 2020-10-29 21:13:21 · 1086 阅读 · 0 评论 -
禁止Windows程序自适应比例缩放
1.调用SetProcessDPIAwareHINSTANCE hUser32 = LoadLibrary(L"User32.dll");if (hUser32) { typedef BOOL (WINAPI* LPSetProcessDPIAware)(void); LPSetProcessDPIAware pSetProcessDPIAware = (LPSetProcessDPIAware)GetProcAddress(hUser32, "SetProcess转载 2020-10-17 23:57:20 · 1207 阅读 · 0 评论 -
win10+VS2017+QT 5.14.2 QWebEngine编译HTML5 MP4支持及相关疑难问题解决
编译方案网上都有,这是stackoverflow上最详尽的一篇:https://stackoverflow.com/questions/50510457/how-to-compile-qt-webengine-5-11-on-windows-with-proprietary-codecs/50510458#50510458碰到的疑难问题:1. win10系统,运行qmake -- -webengine-proprietary-codecs,报告需要Windows SDK version 10.0.1原创 2020-09-02 10:18:06 · 2724 阅读 · 1 评论 -
Qt报错:ASSERT failure in QWidget: “Widgets must be created in the GUI thread.“
原因由于Qt规定了UI主线程只有一个,在另外一个线程生成UI相关对象或对对其进行相关操作例如QWidget或其子类的构造和相关操作,都会出现此断言错误 。解决办法通过信号槽实现线程通讯方式,在非UI主线程发生个信号,让UI主线程调用槽函数进行相关的界面操作。添加connect连接方式为:Qt::QueuedConnection...原创 2020-08-26 13:55:35 · 1999 阅读 · 0 评论 -
QtCreator配置vscode风格
先上效果,一睹为快具体操作:首先找到QtCreator安装路径下的styles目录[你的安装路径]+\Qt5.14.2\Tools\QtCreator\share\qtcreator\styles新建vscode.xml复制下面的内容,并保存<?xml version="1.0" encoding="UTF-8"?><style-scheme version="1.0" name="VSCode"> <style name="Text" f原创 2020-08-06 09:40:12 · 4332 阅读 · 2 评论 -
Qt error: reference to type ‘const QVariant‘ could not bind to an rvalue of type ‘...‘
Qt调用setProperty出现上述报错先来看下Qt帮助文档bool QObject::setProperty(const char *name, const QVariant &value)将对象的name属性的值设置为value。如果使用Q_PROPERTY在类中定义了属性,则成功时返回true,否则返回false。 如果该属性未使用Q_PROPERTY定义,因此未在元对象中列出,则将其作为动态属性添加并返回false。通过metaObject()和dynamicPro原创 2020-07-17 11:57:14 · 4486 阅读 · 0 评论 -
Qter大牛
1.OE 大牛(大牛的博客)贡献值:①开源项目1: C++11 编写可复用多线程任务池 (开源OEasyPool)→文章地址②开源项目2:Qt 实现 QQ 截图工具(开源OEasyScreenshot)→文章地址2.前行之路还需前行(http://blog.csdn.net/goforwardtostep)3.乌托邦(http://blog.csdn.net/taiyang1987912)贡献值:①仿QQ控制面板→文章地址4.一去丶二三里(http://blog.csdn.net原创 2020-05-28 13:48:04 · 183 阅读 · 0 评论 -
Qt气泡提示框(自动消失)
#ifndef FUNCTION_MESSAGE_WIDGET_H#define FUNCTION_MESSAGE_WIDGET_H#include <QWidget>QT_BEGIN_NAMESPACEclass QPaintEvent;QT_END_NAMESPACEclass FunctionMessageWidget : public QWidget{ Q_OBJECTpublic: explicit FunctionMessageWidget(Q.原创 2020-05-28 11:09:03 · 2639 阅读 · 0 评论 -
QTabWidget/QTabBar的tab标签页的文字对齐方式设置
QTabWidget和QTabBar的共同点,都很多tab。但tab上面包含文字的控件是个tabline。尝试通过qss设置文本对齐方式:QTabBar::tab{ text-align:left;}结果:无效然后又尝试了qproperty-alignment:AlignLeft;QTabBar::tab{ qproperty-alignment:AlignLeft;、}结果:无效无奈只能自定义QProxyStyle#include <QPr原创 2020-05-15 18:00:20 · 3853 阅读 · 1 评论 -
QtWebEngine和QtWebEngineProcess
在部署Qt WebEngine应用程序时,需要QtWebEngineProcess.exe,默认情况下,和执行文件同目录。Qt WebEngine采用Chromium提供的多进程模块,该模块要求QtWebEngineProcess.exe随应用一起部署。每个QWebEngineView或WebEngineView实例都会启动一个QtWebEngineProcess.exe进程。为了放置暴露应用程序是Qt开发的,可以将QtWebEngineProcess.exe重命名。通过设置QTWEB.原创 2020-05-14 18:03:21 · 7693 阅读 · 0 评论 -
QtCreator添加文件头注释
Qt ,最近几年发展比较快,应用也比较广的跨平台开发GUI框架。项目开发过程中,经常需要注释相应文件。具体操作:1.打开QtCreator->工具->选项->文本编辑器->片段2.组选择“C++”->添加根据个人喜好添加触发3.添加文件头注释内容://////////////////////////////////////////...原创 2020-04-27 18:45:20 · 1548 阅读 · 1 评论 -
Qt超大文本文件读取
Qt读取,显示几百M甚至几个G的超大文本文件时,调用QFile::open()读取,容易出现加载卡死。对此,可以调用QFile::map()反射内存。uchar *QFileDevice::map(qint64 offset, qint64 size, QFileDevice::MemoryMapFlags flags = NoOptions)Maps size bytes of t...原创 2019-12-12 13:52:14 · 12743 阅读 · 3 评论 -
QProcess启动
QProcess可以启动外部exe程序、执行bat批处理脚本、执行cmd命令等启动方式有两种:一体式外部程序启动后,将随主程序的退出而退出。void QProcess::start(const QString &program, const QStringList &arguments, OpenMode mode = ReadWrite)例:QProc...原创 2019-10-18 22:49:05 · 1083 阅读 · 0 评论 -
C语言实现获得文件大小,大于某个值,删除该文件
C语言实现获得文件大小,大于某个值,删除该文件#include #define ONE_MB 1024*1024long get_file_size(char* file_name);int main(int argc, char *argv[]){ long length = get_file_size("aaa.txt"); if (length > ONE_MB)转载 2017-01-23 10:06:32 · 1296 阅读 · 0 评论 -
Qt应用程序添加图标
首先准备个ICO图标。例如:myappico.ico 用任何文本编辑器新建个文件里面就写一行: IDI_ICON1 ICON DISCARDABLE "myappico.ico" 保存改名为 myapp.rc并把它和你的图标myappico.ico一起复制到你的QT工程项目的目录。用记事本打开你的QT工程文件(如 "mya原创 2017-01-22 17:24:26 · 427 阅读 · 0 评论 -
[开源]Qt图片调整之对比度调节
QImage AdjustContrast(QImage Img, int iContrastValue){ int pixels = Img.width() * Img.height(); unsigned int *data = (unsigned int *)Img.bits(); int red, green, blue, nRed, nGreen, nBlu...原创 2017-01-22 17:05:17 · 5928 阅读 · 2 评论 -
[开源]Qt图片调整之饱和度调节
原理较简单不作详述QImage AdjustSaturation(QImage Img, int iSaturateValue){ int red, green, blue, nRed, nGreen, nBlue; int pixels = Img.width() * Img.height(); unsigned int *data = (unsigned ...原创 2017-01-22 17:07:17 · 2719 阅读 · 0 评论 -
[开源]Qt图片调整之亮度调节
原理:获取图片像素点RGB分量值,直接加上亮度值。QImage AdjustBrightness(QImage Img, int iBrightValue){ int red, green, blue; int pixels = Img.width() * Img.height(); unsigned int *data = (unsigned int *...原创 2017-01-22 17:00:28 · 6256 阅读 · 1 评论 -
调整图片之简介
简单介绍一下Photoshop图像亮度/对比度调整的原理: 一、对比度算法公式。 Photoshop对于对比度增量,是按给定值的正负分别处理的。 如果用newRGB表示图像像素新的R、G、B分量,RGB表示图像像素R、G、B分量,Threshold为给定的阀值,Contrast为对比度增量,当Contrast大于0时: 1) n原创 2017-01-22 16:55:33 · 293 阅读 · 0 评论 -
Windows环境下Qwt安装和使用
Windows环境下Qwt安装和使用 本文是在基于Win7-32位、Qt5.5、MinGW、Qt Creator的环境下安装Qwt。作者搜集了网上大部分资料亲自试验才写出的这篇博客,希望对大家有帮助。一 准备环境1. 准备Qt Creator如果你没有Qt开发环境,请先去官方网站下载一个,选择离线安装的windows版本,安装很简单。由于这个版本已经集转载 2017-02-20 13:33:25 · 479 阅读 · 0 评论 -
Qt之调用外部DLL
声明:事先我已经自己动手写了一个简单的dll文件(myDLL.dll),C版接口的。首先,从dll中导出了导入库(.lib)文件,dll中有两个函数,原型如下:voidHelloWorld(); //函数内部调用Win32 API,功能是弹出一个helloworld提示框intadd(inta,intb); //实现两个数相加,并返回结果下面分别通过显原创 2017-01-13 09:45:26 · 28638 阅读 · 10 评论 -
Qt剪切板实现“复制”“粘贴”功能
剪贴板,可能比较陌生,但是日常操作中的Ctrl+C和Ctrl+V,一定很熟悉,这就是使用了剪贴板。然后,从一个文本文件中复制一段内容到另一文本文件,这也使用到了剪贴板。剪贴板操作,实际上是进程间的通信。注意:剪贴板是由操作系统维护的QClipboard *clipboard = QApplication::clipboard(); //获取系统剪贴板指针QString ...原创 2016-10-20 11:20:50 · 26243 阅读 · 0 评论 -
基于QT 5.5.1 for Android的Windows开发环境搭建
一、准备软件:1.Qt 5.5.1 for Android (Windows 32-bit, 935 MB) (info) : http://www.qt.io/cn/download-open-source/ http://download.qt.io/official_releases/qt/5.5/5.5.1/qt-opensource-windows-转载 2016-09-21 11:05:13 · 2548 阅读 · 0 评论