
QT实用技巧
cc_rong
坚持
展开
-
qt -- QTabWidget 中支持拖拽TabBar项
QTabWidget 中支持拖拽TabBar项原创 2022-06-23 10:03:36 · 4017 阅读 · 0 评论 -
qt -- 数据库相关操作
目录数据库连接数据库关闭相关操作查询修改添加删除数据库连接------------------------MYSQL---------------------------// 创建数据库连接,指定数据库驱动QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");// 数据库连接需要设置的信息db.setHostName("127.0.0.1"); // 数据库服务器IP,本地数据库db.setDataba原创 2022-03-18 11:14:01 · 1257 阅读 · 0 评论 -
qt -- 文件拷贝和获取文件的MD5值
文件拷贝void copyFile(QString inPath, QString outPath){ unsigned char buf[1024]; int len; QFile fin; QFile fout; fin.setFileName(inPath); fout.setFileName(outPath); if(fin.open(QIODevice::ReadOnly) && fout.open原创 2022-03-18 09:22:48 · 479 阅读 · 0 评论 -
qt -- pri文件的使用
目录步骤关键字当很多外部库文件的时候并要添加到工程中时,使用pri文件可以更加的方便。项目庞大的时候,也可以使用pri文件,可以更好的模块化处理。步骤1.在项目路径下创建文件夹2.common文件夹下创建pri文件3.在pro文件中输入,include必须是小写,之后comm文件夹会自动导入到工程中4.在common文件新建文件关键字1、include在pro中引入pri文件 例如: include ($$PWD/di...原创 2022-03-16 17:20:37 · 7709 阅读 · 0 评论 -
qt -- 指定QLabel中的某个字符改变颜色
1、ui->m_labExampleVal->setText(QString("<font color = #4896FA >%1</font>") .arg("fc") + QString("<font color = #000000>%1</font>") .arg("X"));2、ui->m_labExampleVal->s原创 2022-03-14 17:23:59 · 2192 阅读 · 1 评论 -
qt -- 在同一个类中使用不同的ui文件
1、新建文件2、 在pro文件中写入:3、 注意:ui文件的类要和源文件的类一致。原创 2022-03-13 22:18:25 · 783 阅读 · 0 评论 -
qt -- 图片相关操作
显示图片void MainWindow::paintEvent(QPaintEvent *){ //实例 QPixmap QPixmap image(":/new/prefix1/dog.jpg"); //实例 QPainter 绘制类 QPainter painter(this); //绘制图片 painter.drawPixmap(20,20,200,257,image); }显示gif图片//实例 QLabelQLabel *lab原创 2021-09-28 22:47:41 · 384 阅读 · 0 评论 -
qt -- 创建和读取xml文件
目录创建xml读取xml创建xml//文件路径QString xmlPath = "G:/1.xml";QFile file(xmlPath);if(file.open(QIODevice::WriteOnly | QIODevice::Text)){ //实例 QXmlStreamWriter QXmlStreamWriter stream(&file); stream.setAutoFormatting(true); //文档头.原创 2021-09-27 22:48:20 · 445 阅读 · 0 评论 -
qt -- ini文件的读写操作
INI文件格式是某些平台或软件上的配置文件的非正式标准,以节(section)和键(key)构成,常用于微软Windows操作系统中。这种配置文件的文件扩展名多为INI,故名。INI是英文“初始化”(initialization)的缩写。正如该术语所表示的,INI文件被用来对操作系统或特定程序初始化或进行参数设置。文件格式节(section)节用方括号括起来,单独占一行。例如:[section]键(key)键(key)又名属性(property),单独占一个行用等号连接键和值,例如原创 2021-09-27 21:52:37 · 497 阅读 · 0 评论 -
qt -- 应用程序发布、打包
目录静态链接(Static linking)共享库(Shared Libraries)Windows平台上的应用程序发布1、Windows发布工具2、MinGW编译的应用程序发布3、MSVC编译的应用程序发布4、安装Qt的应用程序发布有两种方式:静态链接和共享库方式。静态链接(Static linking)指用Qt编译应用程序时,将Qt的运行库等所需的支持文件全部静态编译到应用程序里,生成一个独立的可执行文件,应用程序发布只需很少的几个文件。这种方式的缺点是应用程.原创 2021-08-16 22:16:48 · 354 阅读 · 0 评论 -
qt -- 窗口拖动功能
private: bool m_moving=false; //表示窗口是否在鼠标操作下移动 QPoint m_lastPos; //上一次的鼠标位置void DlgLogin::mousePressEvent (QMouseEvent *event){ //鼠标按键被按下 if(event->button() == Qt::LeftButton) { m_moving = true; m_las.原创 2021-08-15 13:15:52 · 361 阅读 · 0 评论 -
qt -- 创建UUID
QUuid uuid = QUuid::createUuid();//toUpper() 将小写字母变为大写QString strUUId = uuid.toString().remove("{").remove("}").remove("-").toUpper();原创 2021-08-15 12:52:08 · 2986 阅读 · 0 评论 -
qt -- 字符串加密
qt提供了用于加密的类QCryptographicHash, 自定义函数encrypt():QString Login::encrypt(const QString &str){ //字符串 MD5算法加密 QByteArray btArray; btArray.append(str); QCryptographicHash hash(QCryptographicHash::Md5);//Md5加密算法 hash.addData(btArray)原创 2021-08-13 23:01:54 · 1572 阅读 · 0 评论 -
qt -- 为应用程序设置图标
1、将图标文件(后缀必须是.ico的文件)复制到项目源程序文件目录下。2、在项目配置文件中用RC_ICONS设置图标文件名。RC_ICONS = app.ico原创 2021-08-08 16:50:00 · 205 阅读 · 0 评论 -
qt -- XML特殊字符(如:换行、空格 、Tab 、回车 )
换行 : 
空格 :  Tab : 	回车 : 
用法:<String id = "NETWORK">123 
456456</String>
 就是 换行符 \n其他几个也是相同的用法...原创 2021-02-08 16:17:10 · 2794 阅读 · 0 评论 -
qt -- 解决项目中的中文乱码问题
1、在qt creator 中修改相应的编码格式 1)、edit ----》 select encoding 2)、tools----》options----》text editor----》 behavior ----》 file encodings2、在main函数中添加一下代码,使用 QTextCodec 来设置编码格式#ifdef WIN32 QTextCodec *codec = QTextCodec::codecForName("UTF-8"...原创 2021-02-08 11:51:29 · 470 阅读 · 0 评论 -
qt -- 将矩形图片转换为圆形
需求:将一张矩形图片转换为圆形代码:QPixmap PixmapToRound(QPixmap &src, int radius){ if (src.isNull()) { return QPixmap(); } QSize size(2*radius, 2*radius); //掩码图(黑白色) QBitmap mask(size); QPainter painter(&mask); //Antiali原创 2021-01-31 16:02:21 · 1223 阅读 · 2 评论 -
QT5的程序打包发布(将QT5的工程项目打包成一个exe程序)
最近,在学习QT5的过程中,想尝试着把自己写的工程程序给打包发布出来,在任何一台windows系统都能运行,这样就不会限于电脑需不需要安装QT安装包了。首先,先介绍自己使用的环境。我使用的QT版本是。我的电脑windows系统是win10专业版的。下面的打包教程,都是亲测可用的。但个人认为,即便是不同的windows操作系统,不同的QT版本,也应该是可以的。希望大家能及时反馈,我好及时更新。第二,介绍一下我所使用的打包工具。一个是QT5自带的windeployqt(这个大家不需要下载安装),另外一个是E转载 2021-01-03 22:06:45 · 187 阅读 · 0 评论 -
qt -- 颜色渐变 QLinearGradient、 QConicalGradient、QRadialGradient
1、QLinearGradientbackground: qlineargradient(x1:0, y1:0, x2:1, y2:0, stop:0 #F0BF62, stop:1 #444444);qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 rgba(0, 0, 0, 255), stop:0.33 rgba(0, 0, 0, 255), stop:0.34 rgba(255, 30, 30, 2...原创 2020-12-20 15:36:11 · 1023 阅读 · 2 评论 -
qt -- QLineEdit输入框限制要求
ui->m_pLineEditIp->setEchoMode(QLineEdit::Password);QLineEdit::Normal 正常显示输入的字符,默认选项。QLineEdit::NoEcho 不显示任何输入,常用于密码类型,包括密码长度QLineEdit::Password 显示平台相关的密码掩码字符,而不是实际的字符输入。QLineEdit::PasswordEchoOnEdit 处于输入状态的时候,是正常显示字符。 输入完毕之后,使用Password形式隐藏...原创 2020-12-14 19:02:41 · 1240 阅读 · 0 评论 -
qt -- 使用定时器QTimer,在label中轮播图片
使用信号和槽的机制private: int m_nImgNum = 0; QStringList strlist; QTimer m_pTimer;strList << ":/png/png/zxc.png" << ":/png/png/qqq.png" << ":/png/png/ppp.png";m_pTimer = new QTimer(this);connect(m_pTimer, SIGN原创 2020-11-10 23:01:48 · 803 阅读 · 0 评论 -
qt -- QLabel进行添加点击事件
1、添加点击事件的方法:鼠标事件 (1).使用eventFilter事件过滤器ui->label->installEventFilter(this);//安装事件过滤器 重写: bool eventFilter(QObject * watched, QEvent * event);bool Time::eventFilter(QObject *obj, QEvent *event){ if( obj == ui->label &&...原创 2020-11-10 22:51:21 · 3088 阅读 · 0 评论 -
qt -- QLineEdit限制只能输入Ip地址、Mac地址
需求:QLineEdit限制输入只能输入Ip地址,且未输入时显示4个点占位符。效果图:代码:// 正在表达式限制输入ui->lineEdit_ip->setValidator(new QRegExpValidator(QRegExp("\\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b")));// 用于占位ui->..原创 2020-12-12 15:21:03 · 5842 阅读 · 2 评论 -
qt -- 常用的qss样式总结
设置背景颜色在构造函数里添加:setAutoFillBackground(true);//必须有这条语句setPalette(QPalette(QColor(250,250,200)));原创 2020-12-06 14:58:45 · 7506 阅读 · 0 评论 -
qt -- QString类及常用函数功能的使用(字符串截取,替换,查找,切割)
append() 和 prepend()append() 在字符串的后面添加字符串, prepend() 在字符串的前面添加字符串QString str = "and";str.prepend("rock "); // str == "rock and"str.append(" roll"); // str == "rock and roll"toUpper() 和 toLower()toUpper() 将字符串内的字母全部转换为大写,toLower() .原创 2020-11-21 21:58:03 · 6576 阅读 · 0 评论 -
qt -- 去掉窗口的标题栏以及标题栏中最大化、最小化按钮,设置窗口的大小
#ifndef WIN32 //setAttribute(Qt::WA_TranslucentBackground,true); //去除标题栏 setWindowFlags(Qt::FramelessWindowHint); //设置背景透明 // setAttribute(Qt::WA_TranslucentBackground, true);#endif设置窗口大小:m_pAddEdit->setFixedSize(QSize(1180, 7.原创 2020-11-09 22:42:24 · 2071 阅读 · 0 评论 -
qt -- 在项目中加载qss
QFile file(":/qss/demo.qss")if(file.open(QFile::ReadOnly)){ QTextStream in(&file); QString styleSheet = in.readAll(); a.setStyleSheet(styleSheet); file.close();}原创 2020-11-09 22:35:37 · 182 阅读 · 0 评论 -
qt -- 数据类型之间的转换
1、QString转QByteArrayQByteArray byte;QString str;byte = str.toLatin1();2、QByteArray转QStringQByteArray byte;QString str;str = QString(byte);3、QString转StringQString string;std::string str;str = string.toStdString();4、String转QStringQStr原创 2020-11-09 22:32:57 · 443 阅读 · 0 评论 -
qt--防止子窗口重复
1、窗口定为模态的,从根本上解决问题,但是无法操作另外窗口。若不关掉此窗口,则无法操作。 使用非模态窗口,可以解决此问题,但是非模态窗口可以重复出现窗口。2、解决重复出现窗口问题: 先创建一个空指针,在创建窗体的时候判断该指针是否为NULL,如果为NULL,表示窗体未创建,则创建窗体;如果不为NULL,则表示已经创建窗体,则不再创建新窗体。用null作为判断的条件,会默认返回false// class A;// class B;void A::openB() { ...原创 2020-11-09 22:19:53 · 4064 阅读 · 0 评论