Qt控件使用方法技巧合集


~~~~~~~~        本篇博客代码示例包含C++版本和Python版本,不管是哪个版本,Qt的API都是一样的,使用方式大同小异。


文章目录

  • Qt控件使用方法技巧合集
    • 1、QTextEdit设置背景色和文本颜色
    • 2、QMessageBox的使用
    • 3、QComboBox点击事件更新列表
    • 4、QTabelView的使用
    • 5、Qt关于QDialog右上角显示?按钮不显示最大化、最小化按钮问题
    • 6、配置文件QSettings的使用
    • 7、获取各种路径
    • 8、QLineEdit
    • 9、Qt字符串QStrings类使用详解
    • 10、调试打印输出QDebug使用详解
    • 11、调起窗口的QFileDialog类使用详解
    • 12、文件读写QFile使用详解
    • 13、打开指定路径并选中指定文件
    • 14、QtChart实现动态曲线实时绘制显示
    • 15、时间获取(日期时间类:QDateTime)
    • 15、状态栏:QStatusBar
    • 16、QDialogButtonBox
    • 17、Qt | 拖放、拖动的使用、将文件拖入使用示例

1、QTextEdit设置背景色和文本颜色

    // 设置QTextEdit背景和字体颜色QPalette pl = ui->textEdit->palette();     // 获取textEdit的调色板pl.setColor(QPalette::Base, Qt::black);    // 设置背景色为黑色pl.setColor(QPalette::Text, Qt::green);    // 设置文本颜色为绿色ui->textEdit->setPalette(pl);              // 设置回调色板

2、QMessageBox的使用

https://blog.csdn.net/qq153471503/article/details/123423876

3、QComboBox点击事件更新列表

https://blog.csdn.net/qq153471503/article/details/123422722

4、QTabelView的使用

https://blog.csdn.net/qq153471503/article/details/123423931

5、Qt关于QDialog右上角显示?按钮不显示最大化、最小化按钮问题

https://blog.csdn.net/qq153471503/article/details/123424043

6、配置文件QSettings的使用

https://blog.csdn.net/qq153471503/article/details/123424118

7、获取各种路径

获取exe应用程序路径:

QString dir = QCoreApplication::applicationDirPath();

获取当前工作目录:

QString dir = QDir::currentPath();

8、QLineEdit

1、限制只能输入数字和字母

QRegExp regx("[a-zA-Z0-9]+$");
QValidator *validator = new QRegExpValidator(regx, lined);
lined->setValidator(validator);

2、显示最大输入长度为10:

lined->setMaxLength(10);

注意:这个输入长度只是限制的字符个数,例如10就是限制输出10个汉字或者10个ASCII字符,或者混合。

3、设置占位符文本

ui->lineEdit->setPlaceholderText(tr("请在此处输入文本"));

9、Qt字符串QStrings类使用详解

QString的使用是比较简单的,这里只讲格式化操作的API。

格式化函数arg示例:

    QString str(tr("%1 %2 %3 %4").arg(1).arg("hello").arg(3).arg("world"));qDebug() << str;  // 这里输出:"1 hello 3 world"

使用%N的方式确定是哪一个参数,arg最大只能支持10个。

还有一个是静态函数:QString::asprintf(),这个函数跟C语言的sprintf函数是一样的。

10、调试打印输出QDebug使用详解

使用qDebug可以将调试信息输出到控制台上,该函数使用方式有两种:

  1. 将字符串参数给qDebug,例如qDebug("test");,这种使用方法可以不用添加头文件#include<QDebug>,并且这种使用方式是支持格式化打印的,例如:qDebug("count = %d", count);,这种使用方式类似C语言的printf。
  2. 使用流式输出多字符串,例如qDebug() << "test" << "time";,这种使用方式需要添加头文件#include<QDebug>

补充:当使用release进行最终打包发布时,如果想要显示控制台输出,可以在.pro文件中添加一行CONFIG += console,然后在这里勾选Run in terminal

11、调起窗口的QFileDialog类使用详解

该类的静态函数如下:

比较常用的三个:

  • getOpenFileName:获得打开的文件名
  • getOpenFileNames:获得多选打开的文件名
  • getSaveFileName:获得保存文件名

12、文件读写QFile使用详解

1、文本读写

int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);QFile file("D:/test.txt");if(!file.isOpen()){if(!file.open(QFile::ReadWrite)){return a.exec();}}file.write("hellworld");file.seek(0);QByteArray data = file.readAll();qDebug() << data;return a.exec();
}

2、二进制文件读写

读写二进制文件需要用到QDataStream,示例代码如下:

int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);QFile file("D:/test.bin");if(!file.isOpen()){if(!file.open(QFile::ReadWrite)){qDebug() << "文件打开失败!";return a.exec();}}char buf[] = {0X61,0X62,0X63,0X64};char readbuf[10];QDataStream ds(&file);ds.writeRawData(buf, sizeof(buf));file.flush();  // 执行此句才会真正的写入file.seek(0);memset(readbuf, 0X00, sizeof(readbuf));int nread = ds.readRawData(readbuf, sizeof(readbuf));if(nread > 0)    // 读取成功{qDebug() << "实际读取到"<< nread<< "个字节"<< readbuf;}else if(nread == 0){qDebug() << "未读取到有效内容!";}else{qDebug() << "读取失败!";}file.close();  // 关闭文件中包含了file.flush()return a.exec();
}

13、打开指定路径并选中指定文件

只打开一个目录:

// 打开应用程序所在目录
QDesktopServices::openUrl(QUrl::fromLocalFile(QCoreApplication::applicationDirPath() + "/"));

打开一个目录并选中文件,示例代码:

QString filename = QCoreApplication::applicationFilePath();
QProcess process(this);
QString cmd(tr("explorer /select, \"%1\"").arg(filename.replace("/", "\\")));
process.startDetached(cmd);

代码解释:explorer /select [文件名]这一句是windows的命令行,意思是启动资源管理器并选中文件,这里我们利用QPocess类去执行这一条命令就是实现打开该文件目录并选中。

14、QtChart实现动态曲线实时绘制显示

https://blog.csdn.net/qq153471503/article/details/122078179

15、时间获取(日期时间类:QDateTime)

QDateTime类提供了很多静态函数,如获取本地时间currentDateTime,获取UTC时间currentDateTimeUtc、获取自1970年开始到现在的秒数currentSecsSinceEpoch,或毫秒数currentMSecsSinceEpoch

所有静态函数如下图所示:


QDateTime还提供了toString方法,可以将获取到的时间格式化成你想要的格式,示例如下:

QString currTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss:zzz");
qDebug() << currTime;

结果输出:“2022-11-04 08:49:01:960”,最后的数字是毫秒。


15、状态栏:QStatusBar

窗口左下角显示消息,showMessage函数可接收两个参数,第一个参数是要显示的文本,第二个参数是显示时间:

ui->statusBar->showMessage("我是消息!");

默认显示的消息是在左下角的,如果想要在右下角显示,那么需要在QStatusBar上新增一个label:

    QLabel* label = new QLabel(this);ui->statusBar->addPermanentWidget(label);label->setText("我是label");


16、QDialogButtonBox

见此博客:https://blog.csdn.net/qq153471503/article/details/127800435


17、Qt | 拖放、拖动的使用、将文件拖入使用示例

见此博客:https://blog.csdn.net/qq153471503/article/details/127807873


ends…

Qt控件使用方法技巧合集相关推荐

  1. QT子窗体直接调用父窗体成员、函数、控件的方法

    QT子窗体调用父窗体成员.函数.控件的方法 说明: 简单点的方法就是用parentWidget函数,子类中调用该函数然后强转成父窗体,就可以调用父窗体公有成员.函数了. 如果想调用父窗体的控件,要么让 ...

  2. QT控件出现乱码问题

    问题描述: 在使用qt控件显示汉字的时候会变成乱码,记录下来! 解决方式: QT5之前的方式: #include <QTextCodec>int main(int argc, char * ...

  3. qt 控件设置相对位置_qt设置控件相对位置

    QT关于控件的教程_计算机软件及应用_IT/计算机_专业资料.zl使用Linux... 此例程主要展示用代码方式创建控件并用 Layout 管理类对其进行布局; 例程来自 Qt5.2,如过是默认安装, ...

  4. opic4:Qt入门之常用qt控件认知之Button系列

    opic4:Qt入门之常用qt控件认知之Button系列 2013-06-27 18:21:54 标签:QAbstractButton QPushButton QRadioButton 原创作品,允许 ...

  5. QT控件系列一 | 半透明遮罩弹窗

    QT控件系列一 | 半透明遮罩(弹窗) 文章目录 QT控件系列一 | 半透明遮罩(弹窗) 1.1 前言 1.2 原理(技术点) 1.3 使用 1.4 资源下载 1.1 前言 ​ 我们看Windows桌 ...

  6. qt html svg应用,Qt 控件图标SVG实现

    Qt 控件图标SVG实现 应用程序开发时为了美观通常都会有几套皮肤,界面背景颜色.文字颜色等是可以调整rgb值切换成对应皮肤的颜色值,但是图标就不可以这样切换,除非提前加载所有皮肤的图标,但是这样就会 ...

  7. 华为手机音量键技巧合集,很少有人全部掌握的7个技巧,你会用吗

    华为手机音量键技巧合集,很少有人全部掌握的7个技巧,你会用吗 本文专门为花粉所写,或者说目前正在使用华为手机以及打算入手华为手机的用户们,所提供的华为音量键技巧合集.很少有人能够全部掌握这6个关于音量 ...

  8. vue的$nextTick使用总结,this.$refs为undefined的解决办法,element Ui的树形控件setCheckedKeys方法无法使用

    vue的$nextTick使用总结,this.$refs为undefined的解决办法,element Ui的树形控件setCheckedKeys方法无法使用 参考文章: (1)vue的$nextTi ...

  9. C# winform中一个类中如何调用另一个窗体的控件或方法

    转载地址:http://blog.csdn.net/ichenqingyun/article/details/52622340 一种是创建窗体对象的方式,通过对象调用控件或方法 例如: Form1 f ...

最新文章

  1. Javascript导出Excel的方法
  2. linux下查看Mysql默认编码、修改默认编码
  3. python下拉菜单_python-web自动化:下拉列表操作
  4. RestTemplate设置通用header
  5. google的几个搜索业务
  6. 2019 CUMCM ABC Notes
  7. 上海道宁联合德国think-cell,为您提供更便捷高效的PowerPoint插件
  8. 【HBuilder】前端IDE神器
  9. LA 4487 Exclusive-OR
  10. Creo二次开发:参数化设计
  11. 用Python完成毫秒级抢单,助你秒杀淘宝大单
  12. anaconda、labelme标注软件安装和使用
  13. Aidlux实践-快速实现街道人流量统计系统
  14. gcc -m32报错的解决办法
  15. 计算机中什么符号代表除号,电脑怎么打除号?word除号怎么打出来?键盘上÷号是哪个键?除以符号电脑怎么打?...
  16. 如何编写测试用例?(详细分析)
  17. fpu测试_浮点运算单元FPU能给电机控制带来什么?
  18. 电路元器件3——TVS:
  19. 微软 Win10 这么用才最顺手,电脑必做的 16 项设置
  20. goZero入门使用及注意事项

热门文章

  1. 画表格自动生成html语言,HTML——绘制表格-Go语言中文社区
  2. 3G:3G通信的真实速度
  3. 中国三大运营商3G工作频率/频点及速率
  4. PyQt5桌面应用开发(9):经典布局QMainWindow
  5. Python 第三方模块 科学计算 SciPy模块2 积分,插值
  6. 四史教育自动答题思路讲解(附加Java代码)
  7. 智和网管平台SugarNMS国防军工行业综合网管解决方案
  8. nat123 linux使用教程,nat123 linux版linux2.8以下安装启动教程
  9. [ STK ](九)改变 3D 视图的背景颜色,设置卫星轨道的颜色,导出 3D 视图
  10. 线性布局(LinearLayout)