QT 选择对话框简单示例

部分代码:

    pDialog->addSeparator();
QAction *pmb2 = pDialog->addAction(QString::fromLocal8Bit("选择对话框"));
connect(pmb2, &QAction::triggered,
[this](){
QMessageBox * mBox = new QMessageBox(this);
mBox->setWindowTitle(QString::fromLocal8Bit("中文选择对话框标题"));
mBox->setText(QString::fromLocal8Bit("中文选择对话框内容"));
mBox->setStandardButtons(QMessageBox::StandardButton::Ok | QMessageBox::StandardButton::Cancel);
mBox->setButtonText(QMessageBox::StandardButton::Ok, QString::fromLocal8Bit("确定"));
mBox->setButtonText(QMessageBox::StandardButton::Cancel, QString::fromLocal8Bit("取消"));
mBox->exec();
QMessageBox::StandardButton ret = mBox->standardButton(mBox->clickedButton());
switch (ret)
{
case QMessageBox::NoButton:
qDebug() << QString::fromLocal8Bit("没有选择").toStdString().c_str();
break;
case QMessageBox::Ok:
qDebug() << QString::fromLocal8Bit("确定").toStdString().c_str();
break;
case QMessageBox::Cancel:
qDebug() << QString::fromLocal8Bit("取消").toStdString().c_str();
break;
default:
break;
}
if (mBox != nullptr)
{
delete mBox;
mBox = nullptr;
}
});

效果:

控制台输出:

确定
取消
取消

文件对话框部分代码:

    pDialog->addSeparator();
QAction *pfdalg = pDialog->addAction(QString::fromLocal8Bit("文件对话框"));
connect(pfdalg, &QAction::triggered,
[this](){
QFileDialog * fileDialog = new QFileDialog(this);
//fileDialog->setDirectory("E:\\");
fileDialog->setWindowTitle(QString::fromLocal8Bit("选择文件"));
fileDialog->setNameFilter(QString::fromLocal8Bit("All C++ files (*.cpp *.cc *.C *.cxx *.c++ *.txt *.png)"));
if ( fileDialog->exec() == QDialog::DialogCode::Accepted )
{
QString path = fileDialog->selectedFiles()[];
QMessageBox::information(nullptr, QString::fromLocal8Bit("选择的文件"), QString::fromLocal8Bit("文件路径: ") + path);
}
else
{
QMessageBox::information(nullptr, QString::fromLocal8Bit("选择的文件"), QString::fromLocal8Bit("没有选择文件"));
}
});

效果:

最新文章

  1. XMPie部署与创建过程 - 快速指南
  2. nginx的pass_proxy遇到的坑
  3. 学习OpenCV——绘制彩色直方图(HSV2BGR)
  4. 动手学习TCP:TCP连接建立与终止
  5. implement &quot;slam_karto&quot; package in Stage simulation
  6. Python Quick Start
  7. 公交CPU卡原理
  8. 从 art-template 模版维护到动态加载的思考
  9. 实现JavaScript forEach
  10. 粗糙的es6 -&gt; es5转换正则集
  11. package.json字段全解
  12. Python反序列化 pickle
  13. CSS操作笔记
  14. Python实现实现基于最小二乘法的线性回归
  15. labellmg使用方法
  16. Codeforces.567E.President and Roads(最短路 Dijkstra)
  17. SQLserver如何创建一个表
  18. 阿里云OSS 中文名称地址不对
  19. Java中LinkedList的fori和foreach效率比较
  20. Asynchronous Methods for Deep Reinforcement Learning(A3C)

热门文章

  1. Zabbix学习之路(三)之使用SMTP发送邮件报警及定制邮件报警内容
  2. 1、maven打包 install package deploy区别
  3. spring源码-aop源码-5.1
  4. 【springmvc+mybatis项目实战】杰信商贸-6.重点知识回顾
  5. JAVA学习笔记--字符串概述
  6. 深入react技术栈解读
  7. SVN服务器搭建及客户端配置
  8. ES6对数组的扩展
  9. $_SERVER的详细参数整理下
  10. LCA最近公共祖先(Tarjan离线算法)