QAction
给QAction设置快捷键
1 | ImgRecognizeAct->setShortcut(QKeySequence(tr("Ctrl+Q"))); |
QCommboBox
在下拉框弹出的时候发送信号
1 | class MyComboBox :public QComboBox |
QDateTime
获取当前时间格式化字符串
1 | QDateTime current_date_time = QDateTime::currentDateTime(); |
yyyy表示年;MM表示月;dd表示日; hh表示小时;mm表示分;ss表示秒;zzz表示毫秒;ddd表示周几
参考资料
QFile
文本读写
写入文本文件
1 | QFile f(path); |
参考资料
快速读取QSS文件
1 | static QString ReadQSS(QString path) { |
QImage
QImage图像放缩
1 | *qimg=qimg->scaled(200, 200, Qt::IgnoreAspectRatio, Qt::SmoothTransformation); |
第一、二参数代表缩放后的尺寸,第三个参数代表忽略比例,也可调用IgnoreAspectRatio
保持长宽比例,第四个参数代表平滑处理,使图片缩小时不失真。
参考资料
cv::Mat
与QImage
之间的转换
QImage转cvMat
1 | cv::Mat QImage2cvMat(QImage image) |
1 | cv::Mat QImage2cvMat(const QImage& image) |
cvMat转QImage
1 | QImage cvMat2QImage(const cv::Mat& mat) |
QImage保存
1 | qimg.save(path + "/" + pureFileName + ".jpg", "JPG",100); |
- pictrureName为图片文件的路径,比如:”/home/feng/IMG_0.jpg”,需要注意的是路径必须要有权限读写;
- “JPG”为图片的格式,注意不需要带”.”;
- 100指的是图片的质量因数,范围必须在0到100之内或-1,指定0以获取小型压缩文件,指定100表示大型未压缩文件,使用-1(默认值)使用默认设置。
参考资料
QInputDialog
整型输入对话框:
1 | bool ok; |
文本输入对话框:
1 | bool ok; |
参考资料
QLabel
在QLabel中显示图片
1 | QImage *qimg = new QImage("./img/icon/siripr_icon_1000_1000.png"); |
QPushButton
PushButton绑定事件
在绑定槽函数的时候第一种写法语法上不会报错,但是实际上绑定失败。应该改为第二中写法,被绑定的函数不能具体到某一个对象,而是类的一个成员函数。
1 | -connect(this->m_imgPRBtn, SIGNAL(clicked()), this, SLOT(this->On_ImgRecognizeAct_clicked())); |
或者使用另一种写法:
1 | connect(this->m_imgPRBtn, &QPushButton::clicked, this, &MainWindow::On_ImgRecognizeAct_clicked); |
QPainter
在QPixmap上进行绘画
1 | QPainter painter(&pixmap); |
设置画笔属性
1 | painter.setPen(QPen(QColor("#000"), 3)); |
状态保存与恢复
1 | painter.save(); |
绘制矩形
矩形框
1 | painter.drawRect(rect.x, rect.y, rect.width, rect.height); |
填充矩形
绘制文本
1 | QFont font; |
测量文本尺寸
1 | QFontMetrics metrics(font); |
参考资料
QSetting
使用QSetting读写ini文件
打开ini文件
1 | // 根据ini文件路径新建QSettings类 |
读取数据
1 | m_IniFile->value( "节名" + "/" + "键名").toString(); |
写入数据
1 | m_IniFile->setValue( "节名" + "/" + "键名", "键对应的值"); |
参考资料
QSpinBox
绑定事件
1 | connect(this->m_spinbox_MaxPlates, QOverload<int>::of(&QSpinBox::valueChanged), this, &ImgPRWidget::on_spinbox_MaxPlates_valueChanged); |
QString
QString
与std::string
相互转换
将QString
转换为std::string
1 | std::string QStringToStdString(QString str) { |
将std::string
转换为QString
1 | //将std::string转换为QString |
虽然Qt有内置的转换函数,但是有可能会打乱中文编码
Qt内置函数
1、多字节编码转QString
- 多字节转QString:QString::fromStdString
- QString转多字节:QString::toStdString()
2、unicode编码转QString
- unicode转Qstring:QString::fromStdWString
- Qstring转unicode:QString::toStdWString()
3、utf8编码转QString
- utf8转QString:QString::fromUtf8
- QString转utf8:QString::toUtf8
参考资料
格式化参数
1 | QString i; // current file's number |
参考资料
QWedget
将主窗口居中
1 |
|