[QT] 记录一些使用技巧 概述 打开窗口 弹出消息框 判断文件存在 获取时间 获取子控件 TableWidget设置不可编辑 QT QString判断纯数字 Qt 保存文件选择器 读写ini

最近花了好几天的时间编写了一个专利文件检索的程序,通过Qt完成了PC端程序,因为以前写过Qt,所以这次可以说是极为顺利了,不过忘记了很多东西,所以需要记录

也希望能帮助到广大网友,会继续更新的

打开窗口

  • 不关闭原来的
    Setting* set = new Setting();
    set->show();

参考 https://blog.csdn.net/qq_38446366/article/details/79700556

弹出消息框

下面代码会乱码 需要删除fromLocal8Bit

QMessageBox::information(this, QString::fromLocal8Bit("警告"),QString::fromLocal8Bit("有种你再点击一次")); 

判断文件存在

https://blog.csdn.net/aqtata/article/details/18016467

QFileInfo fi("C:/123");                     // 目录存在
qDebug() << fi.isFile();                    // false
qDebug() << QFile::exists("C:/123");        // true

获取时间

QDateTime current_date_time =QDateTime::currentDateTime();
QString current_date =current_date_time.toString("yyyy.MM.dd hh:mm:ss.zzz ddd");

参考:https://blog.csdn.net/lusirking/article/details/51460716

获取子控件

QList<QCheckBox *> allCheckBox = ui->frame->findChildren<QCheckBox *>();
for(int i = 0;i<allCheckBox.size();i++)
{
    if(allCheckBox.at(i)->isChecked())
    {
        labels.append(allCheckBox.at(i)->objectName().toInt());
    }
}

TableWidget设置不可编辑

setEditTriggers(QAbstractItemView::NoEditTriggers);

QT QString判断纯数字


bool isDigital=QString("12345678").contains(QRegExp("^\d+$"));//true
bool isDigital=QString("12345678 ").contains(QRegExp("^\d+$"));//false
bool isDigital=QString("123.45678").contains(QRegExp("^\d+$"));//false

原文链接:https://blog.csdn.net/fjal256/article/details/102796047

Qt 保存文件选择器

QString file_path = QFileDialog::getSaveFileName(this,"保存位置","www.pdf","*.pdf");

参考: https://www.cnblogs.com/tony-li/p/4095990.html

读写ini

#include <QSettings>
void MainWindow::on_pushButton_6_clicked()
{
    //Qt中使用QSettings类读写ini文件
    //写文件
    //构造函数第一个参数是ini文件的路径,第二个参数表示针对ini文件,第三个参数可以缺省
    QSettings configIniWrite("d:\1.ini", QSettings::IniFormat);
    //向ini文件中写入内容,setValue函数的两个参数是键值对
    //向ini文件的第一个节写入内容,para1节下的第一个参数
    configIniWrite.setValue("/para1/first", "1111111");
    //向ini文件的第一个节写入内容,para1节下的第二个参数
    configIniWrite.setValue("para1/second", 2222);
    //向ini文件的第二个节写入内容,para2节下的第一个参数
    configIniWrite.setValue("para2/third", "3333333");
    //读文件
    QSettings configIniRead("d:\1.ini", QSettings::IniFormat);
    //将读取到的ini文件保存在QString中,先取值,然后通过toString()函数转换成QString类型
    QString first = configIniRead.value("/para1/first").toString();
    int second = configIniRead.value("/para1/second").toInt();
    QString third = configIniRead.value("/para2/third").toString();
    //打印得到的结果
    qDebug() << first;
    qDebug() << second;
    qDebug() << third;
}