![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
QT
文章平均质量分 54
Pafey
这个作者很懒,什么都没留下…
展开
-
一个简单的基于Qt的MVC框架
这个示例展示了如何使用Qt搭建一个简单的MVC框架,其中模型中的操作在子线程中处理。你可以根据需要扩展这个框架,添加更多的功能和复杂性。希望这个示例对你有帮助!原创 2024-07-11 17:10:01 · 366 阅读 · 0 评论 -
QT QDateEdit 修改日历周六日颜色
效果图:代码实现:QCalendarWidget *pCalendarWidget = ui.dateEditBegin->calendarWidget();QTextCharFormat f =pCalendarWidget->weekdayTextFormat(Qt::Monday);//获取周一字体格式f.setForeground( QBrush(QColor("#0...原创 2019-10-25 14:22:59 · 2009 阅读 · 1 评论 -
QListWidget 滚动条滚到最后动态增加子项
实现一个小功能,列表初始加载内容有限,当滚动条拉到最后动态加载更多内容。1.给 QListWidget 的垂直滚动条设计一个槽connect(ui.listWidget_All->verticalScrollBar(),SIGNAL(valueChanged(int )),this,SLOT(slot_listWidgetAllScrollBar_valueChanged(int ))...原创 2019-10-16 10:11:23 · 2567 阅读 · 1 评论 -
qt 子线程对界面进行更新失败
有个按钮会根据适当时候变更图片。比如类型qq的在线离线状态,如果检测在线离线状态的方法是在子线程中,那么去改变按钮的样式会失效。这个问题困扰了我2天,最后才发现是这么回事。解决方法:可以在子线程识别到了状态变化后,利用消息的形式,让主线程去响应这个变更按钮样式操作。...原创 2018-11-09 17:11:01 · 963 阅读 · 0 评论 -
QWidget 的子类窗口采用setStyleSheet 设置背景色无效
QWidget的子类窗口如要正常显示背景色,需要 setAttribute(Qt::WA_StyledBackground);来自[本文](https://blog.csdn.net/u012199908/article/details/50325569)shmiloveyou 的评论加了 setAttribute(Qt::WA_StyledBackground); 就没问题了...原创 2019-04-04 18:54:28 · 4083 阅读 · 0 评论 -
Qt 程序获取程序所在路径、用户目录路径、临时文件夹等特殊路径的方法
经常我们的程序中需要访问一些特殊的路径,比如程序所在的路径、用户目录路径、临时文件夹等。在 Qt 中实现这几个功能所用的方法虽然都不难,但是各不相同,每次用到时还要现去查,很不方便。因此就写了这篇博客,把这几种需求的实现方式总结了一下。算是个备忘录吧。程序所在路径获取程序所在路径,QCoreApplication 类里就实现了相关的功能:QString QCoreApplication::a...转载 2019-03-29 09:52:41 · 243 阅读 · 0 评论 -
QSettings::value().toString() 读取带英文逗号的文本为空
qSettings.value(“hangupMsg_config/hadSubAccounts”).toStringList();//324,327 逗号分隔最近用QSettings::value读取本地 ini 文档的值,有一项值是用于存储类似123,456,144,55,555 的值,但有英文逗号的话读出就是空 QSettings qSettings("user_config.ini",...原创 2019-04-17 18:52:45 · 4170 阅读 · 0 评论 -
Qt 已有窗体快速简单实现四周阴影
原文地址:https://blog.csdn.net/tonny7501/article/details/81748294之前在网上找了很多资料来实现无边框窗口的阴影, 发现不是复杂就是效果不好, 比如图片形式, 只要扩大质量就会严重失真, 会弄疯我们这些强迫症的, 利用纯代码绘画出阴影, 绝对不适合新手和没有绘画细胞的我们, 既然Qt自带阴影效果, 干嘛不直接用呢? 话不多说, 开撸!实现原...原创 2019-04-28 15:25:41 · 1104 阅读 · 0 评论 -
Qt 无边框窗体拖动(采用Qt事件 和 Win API 两种方式)
Qt 无边框窗体拖动(采用Qt事件 和 Win API 两种方式)Win API 方式包含头文件与需要用到的库#ifdef Q_OS_WIN#pragma comment(lib, "user32.lib")#include <qt_windows.h>#endif发送系统消息,进行移动void Widget::mousePressEvent(QMouseEvent...原创 2019-04-28 16:34:45 · 444 阅读 · 0 评论 -
Qt 如何处理密集型耗时的事情(两种方法)
有时候需要处理一些跟界面无关的但非常耗时的事情,这些事情跟界面在同一个线程中,由于时间太长,导致界面无法响应,处于“假死”状态。例如:在应用程序中保存文件到硬盘上,从开始保存直到文件保存完毕,程序不响应用户的任何操作,窗口也不会重新绘制,从而处于“无法响应”状态,这是一个非常糟糕的体验 。在这种情况下,有一种方法是使用多线程,即在子线程中处理文件保存,主线程负责界面相关。而如果不想使用多线程,...原创 2019-05-27 15:01:29 · 1608 阅读 · 0 评论 -
QSlider 解决点击不能到该位置问题
方法一:可以继承重写一个QSlider方法二:1.instaneventfiliter(this);//slider安装一个事件过滤器2.在eventfilter(QObject *,QEvent*)中拦截它,很简单吧例子:slider=new QSlider(this); slider->installEventFilter(this);bool trayIconMenu::...转载 2019-07-18 16:52:00 · 1556 阅读 · 2 评论 -
QT 清空某个widget中的子控件
QList<QPushButton*> btns = ui.scrollAreaWidgetContents->findChildren<QPushButton*>(); foreach(QPushButton* btn, btns) { if("btn_AddTab" == btn->objectName())//不想删除某个 continu...原创 2019-07-25 15:12:42 · 5357 阅读 · 0 评论 -
QComboBox 设置下拉列表颜色
1.在 QComboBox 的父 Widget 中设置 QComboBox 的样式QComboBox{ background-color: rgb(255, 255, 255); border:1px solid rgb(221,221,221); font: 10pt "微软雅黑"; padding-left:10px; }QComboBox QAbstractItemView...原创 2019-07-25 15:19:39 · 7690 阅读 · 0 评论 -
Qt 获取控件位置坐标,屏幕坐标,相对父窗体坐标
QPoint QMouseEvent::pos()这个只是返回相对这个widget(重载了QMouseEvent的widget)的位置。const Returns the position of the mouse cursor, relative to the widgetthat received the event. If you move the widget as a resu...原创 2019-08-14 14:52:06 · 22592 阅读 · 0 评论 -
QTextEdit 或 QTextBrowser 高度自适应
以下方法收集自网络使用 QTextDocument 的 contentsChanged 信号可以解决此问题。QTextEdit *editor = new QTextEdit(this);...connect(editor->document(),SIGNAL(contentsChanged()),this,SLOT(textAreaChanged()));...private...原创 2019-09-03 18:45:19 · 4707 阅读 · 3 评论 -
QT 正则表达式
//取出html中<img src *> 图片地址 QRegExp rx("<img[^>]*src[=\"'s]+[^.]*/([^.]+).[^\"']+[\"']?[^>]*>"); //匹配<img src *> rx.setMinimal(true);//懒惰匹配 false为贪婪匹配 QStringList listImg;原创 2018-10-11 17:23:34 · 419 阅读 · 0 评论 -
QTextEdit 富文本格式清除
清空富文本框内容并恢复初始格式void RichTextEdit::clearText(){ ui.textEditMain->clear(); ui.textEditMain->setFocus(); //恢复初始格式 QFont f; f.setFamily("微软雅黑"); f.setPointSize(10); ui.textEditMain->sele...原创 2018-10-11 17:10:27 · 9256 阅读 · 1 评论 -
Qt QListWidget QTreeWidget QComboBox等控件中,禁用滚动条的右键菜单
有时候在开发新控件的时候,会偶然点到滚动条的右键菜单,出现之后很难看那么怎么去掉呢?其实很简单,如果是QListWidget ,QTreeWidget控件, //记得包含头文件 #include <QScrollBar> ... //禁止滚动条右键菜单 //QListWidget ui.TreeWidget->verticalScrollBar()->...原创 2018-09-21 09:38:35 · 4314 阅读 · 0 评论 -
Qt 带自定义数据结构参数的槽函数连接失败
描述如果信号名字,函数名字都对,连接函数都对,参数类型都对,参数个数也合法的情况下,还是连接失败。当你在一个以后槽函数添加一个新的结构体参数时,槽函数连接失败了,往往就是如下问题。你没有向系统声明这个结构体类型,系统不认这个,故而不响应。代码自定义结构体定义后加上Q_DECLARE_METATYPE(Type)typedef struct struCustom...原创 2017-06-29 14:21:14 · 1407 阅读 · 1 评论 -
Qt 中实现 hmac Sha1 加密并以 base64编码输出
#include QString hmacSha1(QByteArray key, QByteArray baseString){ int blockSize = 64; // HMAC-SHA-1 block size, defined in SHA-1 standard if (key.length() > blockSize) { // if key is longer than b转载 2017-06-22 11:00:57 · 3050 阅读 · 1 评论 -
QTextEdit 实现 QLineEdit 的 setPlaceholderText() 和 setMaxLength ()函数
啰嗦 在设置QLineEdit 默认提示语和最大可输入长多时,可以很方便的调用自带的setPlaceholderText() 和 setMaxLength ()函数来实现,可是在用到多行文本输入的地方要用到QTextEdit ,但是QTextEdit 并未自带这个两个函数,那么要实现这个功能只能自己另外写了。实现实现起来也很简单,主要是处理focusInEvent 和...原创 2017-07-13 16:54:18 · 11189 阅读 · 4 评论 -
QT 中使用 Windows API----SendMessage() 进行窗体间消息传递
概述 在处理 qt 间窗体间消息传递时,一般都是使用信号槽函数的方式来进行,只需要在发送消息窗体 emit 消息,在接受窗体响应 slot 槽函数即可,不过这一般都是在子窗体和父窗体或子控件和父控制之间,如果涉及到一个主窗体下的2个单独子窗体之间的传递消息,如果依然使用信号槽来传递的,需要通过它们共同的父窗体来中转,除此之外,其实还可以使用 Windows 的 api 函数 SendMes原创 2017-07-14 10:43:10 · 9638 阅读 · 0 评论 -
qt4.8.6 基于Phonon的播放器无法播放acc等音频文件解决方法
对于Qt多媒体应用开发,主要使用Phonon多媒体框架。但是受制于框架的设计,实际的多媒体功能都由后端(Backends)来实现,Phonon框架本身不提供多媒体资源的编码和解码。对于Windows平台而言,Phonon框架支持的插件是DirectShow,其只能支持一部分多媒体类型,对于常用的mp4、rmvb,手机上的acc等格式都不予支持。 针对上述问题,网上找到的方法是改用功能强大的 MP...原创 2018-03-31 15:20:39 · 1718 阅读 · 0 评论 -
qt QWidget窗体最小化(showMinimized)后点任务栏恢复后界面卡死
RT,找到2个解决方法如下: 我的qt4.8.6 采用1方法解决问题,2方法无效方法1 重写changeEvent//头文件申明void changeEvent(QEvent *e);//函数实现void myWidgetWindow::changeEvent(QEvent *e){ switch (e->type()) { case QEv...原创 2018-03-29 15:32:06 · 6642 阅读 · 1 评论 -
QPushButton 实现保持按下效果
我们知道微信电脑版左上侧的3个按钮,是可以保持按下状态,且只要有个按下,之前按下的按钮就要切换至弹起状态。 如图 ——————————那么 QPushButton 怎么实现这种效果呢?其实很简单在 qt 设计师直接编辑按钮属性即可,在 QPushButton 的 QAbstractButton 属性里勾选 checked 和 autoExclusive ...原创 2018-04-28 15:01:49 · 29221 阅读 · 8 评论 -
QT 使用 QLabel 实现圆形头像及鼠标悬停效果
原链接 看到个很好效果的实现,代码如下 QString file = "F:\\我的文档\\eer\\user\\188\\Head\\custom.png"; QPixmap pixmapa(file); QPixmap pixmap(40,40); pixmap.fill(Qt::transparent); QPainter painter(&...原创 2018-04-28 18:45:57 · 4017 阅读 · 0 评论 -
QTreeWidget 遍历所有子节点(QTreeWidgetItem)
这恐怕是最简单的写法了,逛论坛发现的,亲测好用 //ui 文件中定义 //QTreeWidget *treeWidget; //... //遍历treeWidget QTreeWidgetItemIterator it(ui.treeWidget); while (*it) { //do something like ...原创 2018-05-08 19:21:52 · 39307 阅读 · 7 评论 -
QT 刷新界面时假死
我们知道,在进行费时的操作时,比如从网络读取数据,从本地数据库读取数据等,为了避免界面卡死,把这些操作放到线程里处理。 待处理完毕后,通过信号槽函数机制通知到 UI 线程进行数据刷新。可有时候设置比较复杂的界面时,比如树控件,数据量较大时,又需要递归写入数据,需要排序等复杂逻辑,导致刷新的时候界面就会卡死一阵子。 那么为了避免这种情况,有个很简单的处理方式。 那就是在循环里面,每次插入数据后...原创 2018-06-12 17:26:58 · 3553 阅读 · 1 评论 -
QT 无法正确展示或者识别图片或文件
问题描述有时候我们发觉,Qt无法正确的展示某些图片,用windows自带的图片工具或者其他工具都能展示出来。 这是为什么呢?Qt中处理图像类的常用类为QImage、QPixmap、QBitmap。这几个类是通过文件的后缀名来认定文件的类型,从而进行解析调用相对应类型模块来显示图片,qt这么做或许是为了加载速度!而不用每次去判断文件类型再来选择用什么模块来加载或者显示。但是这对开发者来...原创 2018-06-21 18:27:06 · 8567 阅读 · 2 评论 -
QT子控件设置qss无效问题
新建了一个 QWidget,里面放了2个 QLabel,模拟 QToolButton,只是想将 ICON 图标做成圆角而已。在Qt设计师里面设置了 QWidget 背景颜色,以及鼠标悬停变色。在 Qt 设计师预览是生效的。可在程序里动态创建添加到主控件里面却死活不显示。解决方法,在子控件QWidget 中重写 paintEvent 函数。(之前的Qss保存不变)void MySubWidg...原创 2018-07-10 09:49:01 · 3560 阅读 · 0 评论 -
QT模拟QToolButton 并将直角图片用代码写成圆角
需求一个按钮有图标和文字,采用 QToolButton 图片文字上下结构,搞定! 由于上述的按钮是固定存在的,美工给做的是圆角图。然后使用场景还有动态增加的按钮,而图片也是用户动态增加的,然后并不一定是圆角图。 为了统一,必须把动态添加的按钮中的 Icon 也搞成圆角矩形。 然而一经查阅并没有现成的方法,于是用个子控件实现,一个QWidget 中放2个QLabel,一个放图标做成圆角...原创 2018-07-10 10:00:39 · 1929 阅读 · 0 评论 -
QTabWidget 子选项卡关闭前(removeTab)不同类型的窗口子部件资源回收
在添加 QTabWidget 子标签时,往往会添加窗口子部件(QWidget*) //自定义搜索子部件类 1类型 SearchKeywdWidget *searchWidget = new SearchKeywdWidget(NULL,keyWord); connect(searchWidget,SIGNAL(signal_clicked_title(QString ...原创 2018-09-06 19:54:28 · 4624 阅读 · 0 评论 -
QT 下 SQlite3 数据库加密及 CppSQLite3 操作数据库加密
由于最近项目需要考虑本地数据的安全性,避免谁都可以找到数据库文件然后右键-记事本打开。。。所以研究了下SQLite3本地数据库加密的方法,百度之,有两种,一是加密数据后存入数据库,二是整个加密数据库;如果选一改地方实在太多,所以一直找直接加密sqlite数据库的方法;然后各种搜索,整合后可行的方式是使用sqlite预留的加密接口,具体编码是用wxsqlite的加密模块;1.原创 2016-07-15 10:10:25 · 10007 阅读 · 2 评论