
QT
翼之痕
C++程序开发,对网络编程,和数据安全等也有兴趣
展开
-
允许Widget接受拖拽的数据
实现向widget中拖拽数据并获取数据的方法。//事件过滤函数处理指针对拖拽的widget。1.首先要给widget设置接受拖拽的属性。2.安装事件过滤器,过滤拖拽事件。//鼠标释放时处理接受解析数据。原创 2022-08-04 20:32:37 · 484 阅读 · 0 评论 -
qss设置Qwidget后,子类化QWidget后qss无效了
今天用Designer拖一个widget窗口,在上面有控件并用qss设置了背景色,所有控件的样式子类化继承QWidget后,通过setupUi(this) 将刚拖的控件在子类化widget里面创建,封装后,在界面调用,发现看不到设置的背景。通过查找资料需要重载paintEvent void paintEvent(QPaintEvent* event) { Q_UNUSED(event); QStyleOption opt; opt.ini...原创 2022-04-07 20:21:38 · 581 阅读 · 0 评论 -
QPushButton按钮 背景色渐变效果的qss
QPushButton{border-radius:15px;padding-left:10px;padding-right:10px;color:rgb(255,255,255);min-width:120px;background:qlineargradient(x1:0,x2:1,y1:0,y2:1,stop:0rgb(18,111,237),stop:1rgb(45,147,250));}Q...原创 2022-01-15 16:24:50 · 1395 阅读 · 0 评论 -
如何在 Qt Designer 中添加资源文件,直接看到效果
打开Qt desiner,在视图,在视图中选择资源浏览器,在弹窗的资源浏览器中就可以添加图片资源原创 2022-01-15 16:21:58 · 1205 阅读 · 0 评论 -
qss 方式截取序列图
该序列图,是40x36的三张图片拼接而成。从左到右,分别是normal,hover,pressed三种状态。当用qt 写界面程序时,为了使资源目录不到处都是图标,将散的图片拼接成三种状态或四种状态的序列图,此时在项目中使用时,setStyleSheet 处理每个状态获取对应的图表方式如下: //后面四位数字表示截取图片对应的是上右下左,在序列图中,normal中图标在第一个,该图标到它的上边没有图标了,所以第一个数字表示到距离最上边是0,第二个表示右,第一图标到最右边的距离是连个图标的宽度...原创 2022-01-15 16:17:40 · 408 阅读 · 0 评论 -
QT 阻止窗口放大
在做Qt程序界面开发过程中,测试按组合键win + up 使 界面放大了,为了阻止界面放大,保持原状,此时需要用到PMINMAXINFO:/** Struct pointed to by WM_GETMINMAXINFO lParam*/typedef struct tagMINMAXINFO { POINT ptReserved; //保留参数 POINT ptMaxSize; ...原创 2021-05-27 10:42:13 · 872 阅读 · 0 评论 -
Qt实现界面居中显示,以及顶层显示
///////////////////////////////////////////////////////////////// 屏幕中间显示 QDesktopWidget *pDeskWdg = QApplication::desktop(); QRect rctAvaild = pDeskWdg->availableGeometry(); this->move((rctAvaild.width() - this->width()) / 2, (rctAvail...原创 2020-10-29 15:12:19 · 923 阅读 · 0 评论 -
如何导出qt 运行环境
Qt程序打包时,需要依赖Qt的一些库,通过命令行:windeployqt.exe 可执行程序路径 就可以将相应依赖的dll拷贝到可执行目录下:如下图:原创 2020-09-17 19:41:16 · 415 阅读 · 0 评论 -
Qt ui_xxxxxx.h 找不到头文件
由于迁移项目,从VS高版本到低版本,环境发生变化导致编译不管,就重现创建了一个项目,就高版本项目的文件拷贝进新项目里,重新编译,发现找不到ui_xxxx.h头文件只需右键属性xxxx.ui,常规|项类型,修改为“自定义生成工具”,展开自定义生成工具,设置:命令行:"$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_%(Filename).h"说明:Uic%27ing %(Identity)...输出:\GeneratedFiles\ui_%(Fi..原创 2020-09-11 18:05:13 · 3721 阅读 · 0 评论 -
QWidget 添加边框阴影
示例代码:WindWMAPI.h#ifndef WINDWMAPI_H#define WINDWMAPI_H#include <windows.h>//********************************************窗口阴影类***************************************typedef struct _MARGINS{ int cxLeftWidth; // width of lef...原创 2020-09-08 09:39:45 · 1715 阅读 · 0 评论 -
Qt 当文本过长时,超过一定限制,右边以省略的符号显示
m_lbTaskName->setFixedWidth(width() / 2); QFontMetrics metrics(name); QString taskName = metrics.elidedText(QString::fromWCharArray((wchar_t*)m_taskBaseInfo.brszName), Qt::ElideRight, width() / 2 - 30); m_lbTaskName->setText(taskName)...原创 2020-09-07 19:18:13 · 1157 阅读 · 0 评论 -
QDir中的Filter枚举变量 和 QDir中的SortFlag枚举变量
enum QDir::Filter与flags QDir::Filters中常用的枚举变量值及其含义如下:QDir::Dirs 0x001 列出目录;QDir::AllDirs 0x400 列出所有目录,不对目录名进行过滤;QDir::Files 0x002 列出文件;QDir::Drives0x004 列出逻辑驱动器名称,该枚举变量在Linux/Unix中将被忽略;QDir::NoSymLinks 0x008 不列出符号链接;QDir::NoDotAndDotDot 0x1000 不列出...原创 2020-05-14 15:19:35 · 1977 阅读 · 0 评论 -
QTreeWidget实现的目录树无法按照Windows系统的默认排序那样,有数字时,按数字的值排序
经过测试发现QTreeWidget 的排序是安装字符串比较大小来排序的,而Widows下的排序对于有数字的是按数值大小在排序,这里就重载了QTreeWidgetItem的小于操作符函数.hclass CTreeWidgetItemEx : public QTreeWidgetItem{public: explicit CTreeWidgetItemEx(QTreeWidget *view, int type = Type); CTreeWidgetItemEx(QTreeWi...原创 2020-05-13 19:02:36 · 568 阅读 · 0 评论 -
用鼠标左键点击QTreeWidget里的项时,水平滚动条会回到最左边的问题
在项目开发中,实现了目录树,当目录名过长,或者展开的项比较多时,此时水平滚动条会出现,若拖动水平滚动条到中间,或最右端,点击QTreeWidget的某项,会导致水平滚动条移动到最左端。解决的方法:首先继承QTreeWidget,重写它,定义两个变量1.在类的头文件声明两个变量 bool m_isItemClicked; int m_horizontalScrollBarPos...原创 2020-05-12 14:31:56 · 1244 阅读 · 1 评论 -
如何隐藏QTreeWidgetItem 的checkbox,且当没有勾选QTreeWidget的子节点时,对话框的Ok按钮禁用,有勾选的,则高亮启用
没有勾选勾选 此电脑,是根节点QTreeWidgetItem,当item->setData(0, Qt::CheckStateRole, QVariant());后就会隐藏checkBoxitem->setCheckState(0, Qt::PartiallyChecked);item->setCheckState(0, Qt::Unchecked)...原创 2020-05-08 17:21:34 · 3141 阅读 · 0 评论 -
在同一线程即处理界面的UI,又要处理加载对话框的paint事件,去显示正在加载,发现加载对话框显示不出来
在用QTreeWidget实现目录树时,点击目录,逐级展开需要一个加载对话框,表明正在加载数据,此时主线程一直在for循环里添加下一级目录的子节点,导致没有工作线程去执行加载对话框的paintEvent的绘制,就没有加载效果出现。如下程序代码:在for循环里,添加 QCoreApplication::processEvents();//添加处理事件每添加一次节点,就调Q...原创 2020-05-08 15:29:38 · 406 阅读 · 0 评论 -
Qt 处理窗体最大化,最小化的函数
//处理窗体最小化响应函数void CMainWdg::onBtnMin(){ this->showMinimized();}//处理窗体最大化函数void CMainWdg::onBtnMax(){ QWindow * pWindow = windowHandle(); Qt::WindowStates state = windowState();...原创 2020-05-07 11:39:17 · 1751 阅读 · 0 评论 -
Qt 实现窗体拖到
void CMainWdg::paintEvent(QPaintEvent *event){ QPainter painter(this); //painter.fillRect(1, 0, width() - 2, 30, QColor(29, 39, 52)); //#1d2734 //QPainter pter(this); painter.drawPixm...原创 2020-05-07 11:25:26 · 156 阅读 · 0 评论 -
Qt 中回调函数的使用方式
.h 文件class CCallBack;//全局对象命名空间namespace GlobalObject{ CCallBack *getCallBackObj(); //获取回调函数对象 extern QWidget* gMainWdg; //主窗口全局对象,可以任意地方调用};class CCallBack : p...原创 2020-05-07 11:10:40 · 3456 阅读 · 0 评论 -
将Qt 实现的主对话框显示到屏幕中间
CMainWdg mainWdg; //////////////////////////////////////////////////////////////////////////// //屏幕中间显示 QDesktopWidget *pDeskWdg = QApplication::desktop(); QRect rctAvaild = pDeskWdg->...原创 2020-05-07 11:04:04 · 1066 阅读 · 0 评论 -
项目中遇到QTreeWidget实现的目录树,水平滚动条没有随着展开的内容真多而出现的问题
方法有两种:方法一: m_leftTreeWidget->header()->setHorizontalScrollMode(QAbstractItemView::ScrollPerPixel); m_leftTreeWidget->header()->setSectionResizeMode(0, QHeaderView::Resiz...原创 2020-04-30 12:27:51 · 1371 阅读 · 0 评论 -
Qt 解决用QLineEdit实现的输入框开始没有光标在闪烁的问题
在项目中遇到new出来QLineEdit在开始时,没有光标在闪烁,此时需要重写QlineEdit代码如下:.h文件class CLineEidt : public QLineEdit{ Q_OBJECTpublic: CLineEidt(QWidget *parent = NULL); ~CLineEidt();protected: virtual...原创 2020-04-20 10:19:25 · 5821 阅读 · 0 评论 -
QComboBox 美化
在这里记录工作中美化下拉框的qss代码,以便以后忘记,方便自己找到:QStyledItemDelegate* itemDelegate = new QStyledItemDelegate(); QComboBox *comboBox = new QComboBox(); comboBox->setItemDelegate(itemDelegate); comb...原创 2020-04-20 09:49:21 · 701 阅读 · 0 评论 -
如何使QLabel 加载的gif动态图片使其背景透明,与背景色一致
在做Qt项目时遇到加载Gif动态图片,但QLabel设置的gif图片,背景图无法透明,需要重写QLabel,下面是代码:.h头文件#include <QtWidgets>class CMoviceLabel : public QLabel{ Q_OBJECT;public: CMoviceLabel(QWidget* parent = NULL);pr...原创 2020-03-31 15:14:52 · 2826 阅读 · 0 评论 -
QTreeWidget 实现自动加载目录以树形结构显示,带checkbox,且item,滚动条用qss美化
写这文章是为了对知识的总结与归纳,以便后面忘了好找,也方便初学者可以找到学习资料#include "TestWidget.h"TestWidget::TestWidget(QWidget *parent) : QMainWindow(parent), ui(new Ui::TestWidgetClass){ ui->setupUi(this); ui->...原创 2019-11-21 11:39:22 · 2334 阅读 · 1 评论 -
Qt实现透明无边框,无关闭按钮,带自定义图片的窗体实例代码
1。实现无边框,无关闭按钮,透明窗体setWindowFlags(Qt::Widget | Qt::WindowCloseButtonHint | Qt::FramelessWindowHint);setAttribute(Qt::WA_TranslucentBackground, true);当窗体是QWidget或继承QWidget就用Qt::Widget,当是QDialog类原创 2018-01-26 15:36:55 · 1511 阅读 · 0 评论