[QT] 记录一些使用技巧
概述
最近花了好几天的时间编写了一个专利文件检索的程序,通过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;
}
作者:cjdty
出处:https://www.cnblogs.com/cjdty/p/12900942.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库