QT标准对话框

    技术2022-07-11  80

    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("未选择"); } }

     

    Processed: 0.012, SQL: 9