
QT技巧
QT技巧
十里春风_jzh
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
使用AI编写qt代码-2
上一篇文章介绍了如何使用Tare+AI的方式编写qt代码,但在实际开发中使用还不够方便,要能够达到在qtcreate中一样点击运行按钮就可以实现自动编译和运行,这篇文章就介绍使用Trae编译和调试qt代码。原创 2025-04-15 21:21:35 · 630 阅读 · 1 评论 -
使用AI编写qt代码
AI的发展越来越开,作为程序员必须也得学会使用AI提高自己的工作效率,但限于qt官方的IDE并没有集成AI插件,所以也是迟迟没有用上AI,因此分享下如何使用AI编写QT代码。原创 2025-03-27 21:49:55 · 1637 阅读 · 0 评论 -
浅谈QT中Tab键的切换逻辑
QT Ta焦点切换顺序原创 2024-10-31 22:14:44 · 664 阅读 · 0 评论 -
QComboBox使用代理设置鼠标悬停提示
Qt中原生的ComboBox控件的下拉选项是没有鼠标悬停提示(ToolTip)功能,那么想要实现提示功能,就需要对控件进行加工,可以通过重写代理类(QStyledItemDelegate)来实现功能。原创 2024-02-25 20:20:27 · 850 阅读 · 0 评论 -
QT combobox下拉从树中选择节点
QT combobox下拉从树中选择节点原创 2022-08-18 17:52:08 · 2166 阅读 · 1 评论 -
QDockwidget悬浮自定义(最小化,最大化),关闭自动停靠
简介某些软件需要用到QDockwidget停靠窗口,这时可能就需要有一个需求,在点击QDockWidget的悬浮按钮后让窗口指定一个大小,并且显示在桌面中间,点击关闭悬浮后的关闭按钮后,让悬浮窗口自动停靠到原来位置https://www.cnblogs.com/luoxiang/p/14277269.html...原创 2022-04-24 17:48:12 · 4352 阅读 · 0 评论 -
QSplitter设置比例
//方法一,将布局中的两个控件设置为0:1ui->splitter->setStretchFactor(0,0);ui->splitter->setStretchFactor(0,1);//方法二,将两个部件设置为窗口的1/3及2/3宽度ui->splitter->setSizes(QList<int>()<<1/3*width<<2/3*width);上述两种方法我都试过,都可以很好的设置比例,网上有说第一种设置没有效果,原创 2022-04-21 10:46:15 · 4681 阅读 · 3 评论 -
QGraphicsView创建悬浮按钮
简介QGraphicsView原创 2022-03-08 16:52:42 · 2661 阅读 · 5 评论 -
QT工程文件(pro/pri)常用配置
//指定生成可执行文件名称TARGET = xxx//指定可执行文件生成路径DESTDIR = $$PWD/xxx//引用pri模块include($$PWD/xxx.pri)//添加头文件搜索路径INCLUDEPATH += $$PWD/xxx//添加库文件搜索路径DEPENDPATH += $$PWD/xxx//指定软件图标,必须为ico图标RC_ICONS = log.ico//判断当前是debug模式还是release模式CONFIG += debug_and_relea原创 2022-01-26 16:57:47 · 616 阅读 · 0 评论 -
QT读写粘贴板
QString source = ui->textEdit_code->toPlainText();QClipboard *clipboard = QApplication::clipboard();//获取系统剪贴板指针QString originalText = clipboard->text();//获取剪贴板上文本信息QMimeData *data = clipboard->mimeData(); //获取mimeData数据QImage image = clipbo原创 2021-11-24 15:23:55 · 1159 阅读 · 0 评论 -
QT重写QSortFilterProxyModel实现多列数据过滤
在QTableView中可以使用QSortFilterProxyModel来过滤model的数据,可以通过setFilterKeyColumn(int colnum)设置需要过滤的列,当设置为-1时则过滤对象为所有列,但是此种方式只要某一列中有符合条件的数据就会被显示出来因此我们可以重写QSortFilterProxyModel的filterAcceptsRow(int source_row, const QModelIndex &source_parent)方法实现同时过滤指定多列的数据效果如原创 2021-07-23 14:12:55 · 3705 阅读 · 2 评论 -
Qt链接MySQL遇到的坑
简介环境:Qt 5.14.2+MySQL8.0.25(ZIP版)+msvc2017_64编译器Qt从5.12版本后不在自带MySQL数据库的连接驱动,需要手动编译,编译之前你的先安装MySQL,和安装qt源码。默认你已经安装好了MySQL和安装qt源码。一、编译进入qt安装目录,然后找到Src\qtbase\src\plugins\sqldrivers\mysql,我的路径为:C:\Qt\Qt5.14.2\5.14.2\Src\qtbase\src\plugins\sqldrivers\mysql原创 2021-05-21 17:45:57 · 1226 阅读 · 11 评论 -
QT使用系统默认程序打开文件
QDesktopServices::openUrl(QUrl::fromLocalFile(filepath));原创 2021-05-21 17:10:24 · 1536 阅读 · 1 评论 -
QT TreeView自定义Model 实现自定义过滤筛选数据
简介通常我们使用QSortFilterProxyModel过滤数据时,只会过滤树的父节点,符合条件的子节点不会被显示出来,因此我们需要继承QSortFilterProxyModel,重写filterAcceptsRow函数可以实现符合条件的子节点也显示出来。.h#include <QSortFilterProxyModel>class SelectFileSortFilterProxyModel : public QSortFilterProxyModel{ Q_OBJECT原创 2021-04-21 10:27:32 · 3791 阅读 · 7 评论 -
QT自定义鼠标样式
//在窗口中调用鼠标样式使用的是setCursor函数//函数原型setCursor(const QCursor &cursor)Qcursor样式,摘自Qt帮助文档除此之外我们还能使用图片来自定义素表样式QPixmap pix(imagepath); QSize size(10,10);//设置图片大小pix = pix.scaled(size,Qt::keepAspectRatio);setCursor(QCursor(pix));...原创 2021-01-19 16:52:33 · 527 阅读 · 0 评论 -
Qt之模型树节点状态恢复(刷新后保持节点展开状态)
简介在实际用途中,我们需要在Treeview上添加节点后需要保持树的展开状态,但是qt的model刷新后,Treeview会自动收起,因此需要自己记录树的状态,并在数据刷新后恢复原来的展开状态实现//先记录下节点的展开状态void MainWindow::GetExpandNode(QModelIndex root){ int row = m_model->rowCount(root); for(int i=0;i<row;i++) { QMod原创 2021-01-14 18:58:02 · 1851 阅读 · 1 评论 -
Qt树(QTreeView,QTreeWidget)非递归遍历方式
记录一下void MainWindow::getItemNonRecursive(){ QList<QTreeWidgetItem*> items; //先获取顶层节点 int childcount = ui->treeWidget->topLevelItemCount(); for(int i = 0; i < childcount; i++) { items << ui->treeWidget-&原创 2020-11-12 16:43:26 · 2753 阅读 · 1 评论 -
Qt之键盘事件(捕获组合键)
简介今天在做快捷键需求时,发现了一个问题,qt的键盘事件不能捕获多个按键按下.即便是在使用modifiers()时,也只能获得类似于shfit+x,ctrl+c,alt+y等等之类的快捷键,对于shift+x+c诸如此类更多的组合就无能为力的.于是各种网上查找资料即查阅文档得知,qt的键盘事件机制一次每次只能获取一个按键(排除shift,alt,ctrl等特殊按键),因此在需要获取多个按键按下或者同时按下时,就需要保存每个按下的按按键,在弹起时在删除弹起的按键.值得注意的是当按键一直被按下时也会出发k原创 2020-11-11 11:09:28 · 5833 阅读 · 6 评论 -
QProcess调用外部程序阻塞等待问题解决
QProcess调用外部程序阻塞等待问题解决简介第一种第二种简介在使用QProcess调用外部程序时,可能会遇到两种场景:1.调用起来之后就不管,直接运行后面的代码2.调用起来后需要等待外部程序执行完成,在继续运行下面的代码第一种这种比较简单,新建一个进程设置好参数就可以了QProcess *openProcess=new QProcess(this); //新建一个process进程//绑定process进程完成信号,垃圾回收connect(openProcess, QOverload&原创 2020-06-12 14:56:16 · 8339 阅读 · 5 评论 -
QT使用正则表达式过滤LineEdit输入(其他控件同理)
介绍经常会有需要限制输入框中只能输入数字或者浮点数的需求,使用正则表达式能够快速的解决这些问题。 //限制lineedit输入 QRegExp rx("[1-9][0-9](\\.\\d{1,2})?$"); /*功能:限制输入小数点前两位小数点后两位的浮点数,也可以只输入两位整数 */ QRegExpValidator *pReg = new QRegExpValidator(rx, this); ui->lineEdit_Interpolation-&原创 2020-06-05 10:49:52 · 1045 阅读 · 1 评论 -
Qt中设置Qlabel中文乱码报错问题
在Qt create或者vs中开发qt项目时,经常遇到中文乱码,记录下来以免忘了。使用Qt create开发时,选择工具->选项->文本编辑器->行为,将默认编码改成UTF-8,UTF-8 BOM改成如果编码是UTF-8则添加,如下图。然后在对应的cpp或者头文件中添加#pragma execution_character_set(“utf-8”);即可。使用vs开发qt...原创 2020-03-16 17:12:18 · 3087 阅读 · 0 评论 -
qt旋转图片,实现加载窗口
头文件#pragma once#include <QWidget>#include <QTime>class QPixmap;class QTimer;class MyRoundWidget : public QWidget{ Q_OBJECTpublic: MyRoundWidget(QWidget *parent, int radius = ...原创 2019-11-09 17:27:13 · 440 阅读 · 0 评论 -
qt显示隐藏控件,窗口大小随之变化
#include "mainwindow.h"#include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){ ui->setupUi(this); main_window=this->g...原创 2019-11-01 11:58:39 · 3738 阅读 · 0 评论 -
Qt label控件安装事件过滤器
再用qt开发是,经常用到Qlable,而有时候又需要Qlabel具有点击事件,qt提供了事件点击器就能够实现。QLabel* _label = new QLabel(this); //创建一个label控件_label->installEventFilter(this); //为label控件安装事件过滤器//重写eventFilter函数bool ColorConfig::eve...原创 2019-09-20 16:03:52 · 919 阅读 · 2 评论 -
Qt tablewidgect自定义代理
qt中经常使用delegate来自定义控件的显示方法,通过代理能够在tablewidget/tableview中添加各种各样的控件,达到想要的效果Qt中关于代理的几个类层次如下图所示,QAbstractItemDelegate是所有代理类的抽象基类,QItemDelegate和QStyledItemDelegate是视图组件使用的缺省代理类。QStyledltemDelegate与QltemDe...原创 2019-09-12 14:00:11 · 846 阅读 · 0 评论 -
Qt QDialog类的简单使用
// 去掉问号,只保留关闭this->setWindowFlags(Qt::CustomizeWindowHint | Qt::WindowCloseButtonHint);//设置窗口标题this->setWindowTitle("面积线分类及编号设置");原创 2019-09-04 20:52:50 · 1434 阅读 · 0 评论 -
Qcombox常用的设置
https://blog.youkuaiyun.com/raiven2008/article/details/43417775原创 2019-09-04 20:50:36 · 3402 阅读 · 0 评论 -
Qstring类的简单用法
根据指定的字符分割字符串,split()方法QString str = "hello,world"QStringList list = str.split(",");QString a = list[0]; //a = "hello"QString b = list[1]; //b = "world"QString str2 = b.append(a);str2 = "worldhel...原创 2019-09-04 20:37:41 · 351 阅读 · 0 评论 -
Qtablewidget常用用法
https://blog.youkuaiyun.com/raiven2008/article/details/43417775split 按照指定的字符分割,如按照";"或 "/"等分割QString str = "hello,world"QStringList list = str.split(",");QString a = list[0]; //a = "hello"QString b = l...原创 2019-09-04 16:26:19 · 368 阅读 · 0 评论