QT标准对话框
发布日期:2021-06-30 12:10:51
浏览次数:2
分类:技术文章
本文共 7183 字,大约阅读时间需要 23 分钟。
1.QFileDialog
1.1打开一个文件
QString getOpenFileName(QWidget *parent = Q_NULLPTR, const QString &caption = QString(), const QString &dir = QString(), const QString &filter = QString(), QString *selectedFilter = Q_NULLPTR, Options options = Options())
实战:
//QString curPath = QDir::currentPath(); // 当前目录 QString curPath = QApplication::applicationDirPath(); // bin目录 QString dlgTitle = "选择单个文件"; QString filter = "文本文件(*.txt);;图片文件(*.jpg *.gif);;所有文件(*.*)"; QString fileName = QFileDialog::getSaveFileName(this, dlgTitle, curPath, filter); ui->txtEdit->appendPlainText(fileName);
1.2打开多个文件
QStringList getOpenFileNames(QWidget *parent = Q_NULLPTR, const QString &caption = QString(), const QString &dir = QString(), const QString &filter = QString(), QString *selectedFilter = Q_NULLPTR, Options options = Options())
实战:
QString curPath = QDir::currentPath(); //QString str1 = QApplication::applicationDirPath(); // bin目录 //str1 = QApplication::applicationFilePath(); // 完整路径+APP名 QString dlgTitle = "选择多个文件"; QString filter = "文本文件(*.txt);;图片文件(*.jpg *.gif);;所有文件(*.*)"; QStringList fileNames = QFileDialog::getOpenFileNames(this, dlgTitle, curPath, filter); QString str; foreach(str, fileNames) { ui->txtEdit->appendPlainText(str); } for (int i = 0; i < fileNames.count(); i++) { ui->txtEdit->appendPlainText(fileNames[i]); }
2.QColorDialog
QColor getColor(const QColor &initial = Qt::white, QWidget *parent = Q_NULLPTR, const QString &title = QString(), ColorDialogOptions options = ColorDialogOptions())
实战:
QPalette pal = ui->txtEdit->palette(); QColor initColor = pal.color(QPalette::Text); QColor color = QColorDialog::getColor(initColor, this, tr("选择颜色")); if(color.isValid()) { pal.setColor(QPalette::Text, color); ui->txtEdit->setPalette(pal); }
3.QFontDialog
QFont getFont(bool *ok, const QFont &initial, QWidget *parent = Q_NULLPTR, const QString &title = QString(), FontDialogOptions options = FontDialogOptions())QFont getFont(bool *ok, QWidget *parent = Q_NULLPTR)
实战:
QFont initFont = ui->txtEdit->font(); bool ok = false; QFont font = QFontDialog::getFont(&ok, initFont); if(ok) { ui->txtEdit->setFont(font); }
4.QInputDialog
4.1输入文字
QString getText(QWidget *parent, const QString &title, const QString &label, QLineEdit::EchoMode mode = QLineEdit::Normal, const QString &text = QString(), bool *ok = Q_NULLPTR, Qt::WindowFlags flags = Qt::WindowFlags(), Qt::InputMethodHints inputMethodHints = Qt::ImhNone)
实战:
bool ok = false; QString str = QInputDialog::getText(this, tr("请输入:"),"hehe",QLineEdit::Normal, tr("123"), &ok); if(ok && !str.isEmpty()) { ui->txtEdit->appendPlainText(str); }
4.2输入整数
int getInt(QWidget *parent, const QString &title, const QString &label, int value = 0, int min = -2147483647, int max = 2147483647, int step = 1, bool *ok = Q_NULLPTR, Qt::WindowFlags flags = Qt::WindowFlags())
实战:
QString dlgTitle("输入整数对话框"); QString txtLabel("设置字体大小"); int minValue = 9, maxValue = 50, stepValue = 1; int defaultValue = ui->txtEdit->font().pointSize(); bool ok = false; int inputValue = QInputDialog::getInt(this, dlgTitle, txtLabel, defaultValue, minValue, maxValue, stepValue, &ok); //QString str = QString::number(inputValue); //str = str.setNum(num); if(ok) { QFont font = ui->txtEdit->font(); font.setPointSize(inputValue); ui->txtEdit->setFont(font); }
4.3输入浮点数
double getDouble(QWidget *parent, const QString &title, const QString &label, double value = 0, double min = -2147483647, double max = 2147483647, int decimals = 1, bool *ok = Q_NULLPTR, Qt::WindowFlags flags = Qt::WindowFlags())
实战:
QString dlgTitle("输入浮点数对话框"); QString txtLabel("输入一个浮点数"); float minValue = 0, maxValue = 10000; int decimals = 2; float defaultValue = 3.14; bool ok = false; float inputValue = QInputDialog::getDouble(this, dlgTitle, txtLabel, defaultValue, minValue, maxValue, decimals, &ok); if(ok) { QString str = QString::asprintf("输入了一个浮点数:%.2f", inputValue); ui->txtEdit->appendPlainText(str); }
4.4下拉列表选择输入
QString getItem(QWidget *parent, const QString &title, const QString &label, const QStringList &items, int current = 0, bool editable = true, bool *ok = Q_NULLPTR, Qt::WindowFlags flags = Qt::WindowFlags(), Qt::InputMethodHints inputMethodHints = Qt::ImhNone)
实战:
QString dlgTitle("条目选择对话框"); QString txtLabel("请选择级别"); int curIndex = 0; // 初始选择项 bool editable = true; // comboBox是否可编辑 bool ok = false; QStringList items; items << "优秀" << "良好" << "合格" << "不合格"; QString text = QInputDialog::getItem(this, dlgTitle, txtLabel, items, curIndex, editable, &ok); if(ok && !text.isEmpty()) { ui->txtEdit->appendPlainText(text); }
5.QMessageBox
5.1简单信息提示
用于显示提示、警告、错误等信息的.
void about(QWidget *parent, const QString &title, const QString &text)void aboutQt(QWidget *parent, const QString &title = QString())StandardButton critical(QWidget *parent, const QString &title, const QString &text, StandardButtons buttons = Ok, StandardButton defaultButton = NoButton)StandardButton information(QWidget *parent, const QString &title, const QString &text, StandardButtons buttons = Ok, StandardButton defaultButton = NoButton)StandardButton warning(QWidget *parent, const QString &title, const QString &text, StandardButtons buttons = Ok, StandardButton defaultButton = NoButton)
实战:
void Widget::on_btnMsgInformation_clicked(){ QMessageBox::information(this, tr("提示"), tr("这是一个信息"));}void Widget::on_btnMsgWarning_clicked(){ QString title("提示"); //QMessageBox::StandardButton btn = QMessageBox::warning(this, title, QString("warning"));}void Widget::on_btnMsgCritical_clicked(){ QMessageBox::critical(this, QString("critical"), QString("ceshi"));}void Widget::on_btnMsgAbout_clicked(){ QMessageBox::about(this, QString("版权"), QString("about jadeshu"));}void Widget::on_btnMsgAboutQt_clicked(){ QMessageBox::aboutQt(this, QString("jadeshu QT"));}
5.2确认选择对话框
StandardButton question(QWidget *parent, const QString &title, const QString &text, StandardButtons buttons = StandardButtons( Yes | No ), StandardButton defaultButton = NoButton)
实战:
void Widget::on_btnMsgQuestion_clicked(){ QString dlgTitle("Question消息框"); QString strInfo("文件已被修改,是否保存?"); QMessageBox::StandardButton defaultBtn = QMessageBox::NoButton; QMessageBox::StandardButton res = QMessageBox::question(this, dlgTitle, strInfo, QMessageBox::Yes|QMessageBox::No|QMessageBox::Cancel, defaultBtn); if(res == QMessageBox::Yes) { ui->txtEdit->appendPlainText("Yes被选择"); } else if(res == QMessageBox::No) { ui->txtEdit->appendPlainText("No被选择"); } else if(res == QMessageBox::Cancel) { ui->txtEdit->appendPlainText("Cancel被选择"); } else { ui->txtEdit->appendPlainText("未选择"); }}
转载地址:https://jadeshu.blog.csdn.net/article/details/107072376 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
初次前来,多多关照!
[***.217.46.12]2024年04月12日 09时44分33秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
ReferenceError: Unknown plugin component
2019-04-30
vue 引入 element-ui 报 es2015 的错
2019-04-30
图片暴力压缩
2019-04-30
vue 插件 之 生成二维码 qrcodejs2
2019-04-30
javascript 之 获取毫秒时间戳
2019-04-30
python 环境搭建无坑
2019-04-30
python 配置web自动化测试框架 selenium
2019-04-30
python 自动化测试 selenium 框架 - 1
2019-04-30
html 导出 excel -- 1
2019-04-30
html 导出 excel 设置单元格文本格式 -- 2
2019-04-30
html 导出 excel 单元格合并 --3
2019-04-30
javascript 时间格式在iphone上的兼容问题 亲测有用 无坑点
2019-04-30
dom - 创建节点
2019-04-30
uni-app 环境搭建
2019-04-30
uni-app 浏览器测试
2019-04-30
dom - 12 种 node 类型
2019-04-30
css sprite是什么、有什么优缺点
2019-04-30
清除浮动的⼏种⽅式
2019-04-30
CSS在性能优化方面的实践
2019-04-30