QT中常见的几种对话框

8 篇文章 0 订阅

一 qt对话框类部件

对于对话框的功能,在GUI图形界面开发过程中,使用是非常多,那么,在QT中也提供了丰富的对话框架类

The QDialog class is the base class of dialog windows. QDialog 是所有对话框的基类

主要被这些类继承:QColorDialog, QErrorMessage, QFileDialog, QFontDialog, QInputDialog, QMessageBox, QProgressDialog,

1.1 QColorDialog(颜色对话框)

该类的主要作用用来获得一个颜色

如果要使用该类来得到一个颜色,通常使用一个静态函数(getColor)

The static functions provide modal color dialogs.

The static getColor() function shows the dialog, and allows the user to specify a color.

该函数原型:

[static] QColor QColorDialog::getColor(
const QColor &initial = Qt::white, 
QWidget *parent = nullptr, 
const QString &title = QString(), 
QColorDialog::ColorDialogOptions options = ColorDialogOptions())

功能:得到一个QColor

参数说明:

参数一:const QColor &initial = Qt::white 默认一个初始化的颜色,一般情况下,默认即可

参数二:QWidget *parent = nullptr, 该对话框的父部件,设置为nullptr,则说明对话框没有父部件,对话框是独立的,如果要传参,通常为this

参数三:const QString &title = QString() 对话框的标题

参数四:QColorDialog::ColorDialogOptions options = ColorDialogOptions() 对话框可选项设置

返回值:QColor

QColor ----- RGB

int

red() const

int

green() const

int

blue() const

void MainWindow::on_colorSetButton_clicked()
{
      QColor color = QColorDialog::getColor();

      int red = color.red();
      int green = color.green();
      int blue = color.blue();

      ui->testLable->setStyleSheet(QString("background-color: rgb(%1, %2, %3);")
                                   .arg(red)
                                   .arg(green)
                                   .arg(blue));
}

1.2 QFontDialog(字体对话框)

A font dialog is created through one of the static getFont() functions.通常使用该静态函数来创建一个

字体对话框。

静态函数原型:

[static] QFont QFontDialog::getFont(bool *ok, 
const QFont &initial,
 QWidget *parent = nullptr,
  const QString &title = QString(),
   QFontDialog::FontDialogOptions options = FontDialogOptions())

参数说明:

bool *ok ----- 输出参数,代表是否成功,成功为true,否则,flase

const QFont &initial ---- 初始化的字体,比如:QFont serifFont("Times", 10, QFont::Bold);

QWidget *parent = nullptr, 该对话框的父部件,设置为nullptr,则说明对话框没有父部件,对话框是独立的,如果要传参,通常为this

const QString &title = QString() 对话框的标题

QColorDialog::ColorDialogOptions options = ColorDialogOptions() 对话框可选项设置

void MainWindow::on_fontSetButton_clicked()
{
    bool ok;
    QFont font = QFontDialog::getFont(&ok, QFont("Times", 12), this);
    if (ok) {
        // font is set to the font the user selected

        ui->testLable->setFont(font);
    } else {
        // the user canceled the dialog; font is set to the initial
        // value, in this case Times, 12.
    }
}

1.3 QFileDialog(文件对话框)

The QFileDialog class provides a dialog that allow users to select files or directories,该对话框可以打开一个对话框让用户选择一个文件 多个文件和目录。

为了得到一个文件对话框,通常使用静态函数(The easiest way to create a QFileDialog is to use the static functions.)

静态函数列表:

QString

getExistingDirectory(QWidget *parent = nullptr, const QString &caption = QString(), const QString &dir = QString(), QFileDialog::Options options = ShowDirsOnly)//打开一个目录

QWidget *parent = nullptr ----- 对话框父控件,一般传this

const QString &caption ---- 对话框标题

const QString &dir = QString() ---- 指定要打开的目录,否则。默认为程序当前目录

QFileDialog::Options options ---- 对话框的选项,默认即可

返回值:

目录的路径

QString

getOpenFileName(QWidget *parent = nullptr, const QString &caption = QString(), const QString &dir = QString(), const QString &filter = QString(), QString *selectedFilter = nullptr, QFileDialog::Options options = Options())

QWidget *parent = nullptr ----- 对话框父控件,一般传this

const QString &caption ---- 对话框标题

const QString &dir = QString() ---- 指定要打开的目录,否则。默认为程序当前目录

const QString &filter = QString() ---- 设置文件过滤器,只显示某些指定的类型文件

QString *selectedFilter = nullptr ----- 设置文件过滤器

QFileDialog::Options options ---- 对话框的选项,默认即可

返回值:

文件的路径

fileName = QFileDialog::getOpenFileName(this,

tr("Open Image"), "/home/jana", tr("Image Files (*.png *.jpg *.bmp)"));

如果过滤的内容有多个,那么他们使用符号";;"来分隔

void MainWindow::on_openButton_clicked()
{
#if 0
     // QString pathName =   QFileDialog::getExistingDirectory(this,"打开目录","C:/Users/davis/Desktop/李景辉11.3");
      QString pathName =   QFileDialog::getExistingDirectory(this,"打开目录");
    qDebug() << pathName; //"C:/Users/davis/Desktop/李景辉11.3/hw1,2"
#endif
  QString  fileName = QFileDialog::getOpenFileName(this,
          tr("Open File"), "D:/Qt/Qt_GZ2011/qt_workspace/DAY6/qt_demo1_colordialog",
                                                   "Text files (*.h *.cpp)");
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值