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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:函数模板参数左值,右值,引用
下一篇:Q_OBJECT

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年04月12日 09时44分33秒