一 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)");
}