五、对话框
2、Qt内置对话框
Qt内置的所有对话框全部继承自QDialog
(1)Message Box
消息对话框是非常常见常用的界面元素,主要用于为用户提示重要信息,强制用户进行选择操作
QMessageBox类中定义了静态成员函数有四个
函数 | 作用 |
---|---|
Question | 用于正常操作过程中的提问 |
Information | 用于报告正常运行信息 |
Warning | 用于报告非关键错误 |
Critical | 用于报告严重错误 |
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
//创建一个按钮和消息对话框,按钮用来呼唤对话框
QPushButton* btn = new QPushButton("消息对话框",this);
QMessageBox* mb = new QMessageBox(this);
//设置对话框基本信息
mb->setWindowTitle("警告");//标题
mb->setText("错误信息");//文本内容
mb->setIcon(QMessageBox::Question);//图标设置
mb->setStandardButtons(QMessageBox::Ok|QMessageBox::No|QMessageBox::Help);
//按钮设置
connect(btn,&QPushButton::clicked,[=]()
{
mb->show();
});
}
messagedialog
(2)QColorDialog
颜色对话框功能就是让用户选择颜色
方法 | 说明 |
---|---|
QColorDialog(QWidget* parent = nullptr) | 创建对象的同时设置父对象 |
QColorDialog(const QColor& initial,QWidget* parent = nullptr) | 创建对象的同时通过QColor对象设置默认颜色和父对象 |
void setCurrentColor(const QColor& color) | 设置当前颜色对话框 |
QColor currentColor() const | 获取当前颜色对话框 |
QColor getColor(const QColor& initial = Qt::white, QWidget* parent = nullptr, const QString& title = QString(), QColorDialog::ColorDialogOptions options = ColorDialogOptions()) | 打开颜色选择对话框,并返回一个QColor对象 |
void open((QObject* receiver,constchar* member) | 打开颜色对话框 |
其中倒数第二个函数,initial是设置默认颜色,parent是设置父对象,title是设置对话框标题,options是设置选项
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
//创建按钮和颜色对话框
QPushButton* btn = new QPushButton("颜色对话框",this);
QColorDialog* cd = new QColorDialog(this);
//连接两者
connect(btn,&QPushButton::clicked,[=]()
{
cd->setCurrentColor(QColor(100,100,100));
cd->open();
});
}
colordialog
(3)QFileDialog
方法 | 说明 |
---|---|
QString getOpenFileName(QWidget *parent = nullptr, const QString &caption = QString(), const QString &dir = QString(), const QString &filter = QString(), QString *selectedFilter = nullptr, QFileDialog::Options options = Options()) | 打开一个文件 |
QStringList getOpenFileNames(QWidget *parent = nullptr, const QString &caption = QString(), const QString &dir = QString(), const QString &filter = QString(), QString *selectedFilter = nullptr,QFileDialog::Options options = Options()) | 打开多个文件 |
QString getSaveFileName(QWidget *parent = nullptr, const QString &caption = QString(), const QString &dir = QString(), const QString &filter = QString(), QString *selectedFilter = nullptr, QFileDialog::Options options = Options()) | 保存文件 |
parent:父亲
caption:对话框标题
dir:默认打开路径
filter:文件过滤器
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
QPushButton* btn = new QPushButton("按钮",this);
QFileDialog* fd = new QFileDialog(this);
connect(btn,&QPushButton::clicked,[=]()
{
QString str = fd->getOpenFileName(this,
"文件","C://Users//14725//Desktop","*.jpg");
});
}
(4)QFontDialog
**MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
QPushButton* btn = new QPushButton("字体对话框",this);
connect(btn,&QPushButton::clicked,[=]()
{
bool flag;
//getFont的第一个参数必须为bool类型
QFont font = QFontDialog::getFont(&flag,QFont("华文行楷",36));
});
}
(5)QInputDialog
方法 | 说明 |
---|---|
double getDouble(QWidget* parent,const QString& title, const QString& label, double value =0,doublemin=-2147483647,doublemax=2147483647,intdecimals=1,bool* ok=nullptr, Qt::WindowFlags flags = Qt::WindowFlags()); | 双精度浮点型输⼊数据对话框 |
int getInt (QWidget* parent, const QString& title, const QString& label, int value = 0, int min=-2147483647,intmax=2147483647,intstep=1,bool* ok=nullptr,Qt::WindowFlags flags = Qt::WindowFlags()); | 整型输⼊数据对话框 |
QString getItem (QWidget* parent, const QString& title, const QString& label, const QStringList& items, int current = 0, bool editable = true, bool* ok =nullptr, Qt::WindowFlags flags = Qt::WindowFlags(), Qt::InputMethodHints inputMethodHints = Qt::ImhNone) ; | 选择条⽬型输⼊数据框 |
parent:父亲
title:对话框标题
label:对话框标签
items:可供选择的条目
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
QPushButton* btn = new QPushButton("输入对话框",this);
QInputDialog* id = new QInputDialog(this);
connect(btn,&QPushButton::clicked,[=]()
{
//参数2是输入对话框名,参数3是输入对话框内容
int i = id->getInt(this,"输入框","int型");
});
}
今日分享就到这了~