一、前言
Qt提供了一些常用的对话框,继承于dialog类,本文对常见dialog类中的对话框进行功能讲解。
对话框类型 | QDialog类 |
消息对话框 | QMessageBox |
颜色对话框 | QColorDialog |
字体对话框 | QFontDialog |
输入对话框 | QInputDialog |
进度对话框 | QProgressDialog |
文件对话框 | QFileFialog |
错误信息对话框 | QErrorMessage |
二、具体功能
1.消息对话框—QMessageBox
通过information静态成员方法进行消息对话框的制作,格式如下
StandardButton QMessageBox::information(QWidget *parent,
const QString &title,
const QString &text,
StandardButtons buttons = Ok,
StandardButton defaultButton = NoButton)
参数的含义如下:
parent:指定父窗口。
title:指定消息对话框的标题
text:指定消息对话框的内容
buttons:指定对话框中的按钮,用|隔开
defaultButton:指定默认按钮
具体实现如下:
2.颜色对话框—QColorDialog
用于指定颜色的对话框部件
[static] QColor QColorDialog::getColor(const QColor &initial = Qt::white,
QWidget *parent = nullptr,
const QString &title = QString(),
QColorDialog::ColorDialogOptions options =
ColorDialogOptions())
参数含义如下:
initial:默认选中的颜色
parent:指定父窗体
title:窗体标题
具体实现如下:
3.字体对话框—QFontDialog
用于对字体样式进行修改的对话框部件
[static] QFont QFontDialog::getFont(bool *ok,
const QFont &initial,
QWidget *parent = nullptr,
const QString &title = QString(),
QFontDialog::FontDialogOptions options =
FontDialogOptions())
参数含义如下:
ok:如果 ok 参数为 not-null,则如果用户单击“确定”,则该参数引用的值设置为 true,如果用户单击“取消”,则将其引用的值设置为 false。
inital:初始字体
parent:指定父窗体
title:窗体标题
options:字体选择范围
具体实现如下:
4.输入对话框—QInputDialog
用于获取用户录入的单个值
有getDouble,getInt,getItem,getMultiLineText,getText,分别获取不同类型得用户输入值。
示例如下:
5.进度对话框—QProgressDialog
用于展现进度条
void Widget::on_pushButton_5_clicked()
{
if(p_dialog == NULL)
{
step = 0;
p_dialog = new QProgressDialog(this);
p_dialog -> setRange(0,100);
connect(p_dialog,SIGNAL(canceled()),this,SLOT(doProcessCancel()));
mytimer = new QTimer(this);
connect(mytimer,SIGNAL(timeout()),this,SLOT(doProcessTimeOut()));
mytimer->start(50);
}
}
示例如下:
6.文件对话框—QFileDialog
getOpenFileName:获取打开文件名
getSaveFileName:获取保存文件名
void Widget::on_pushButton_7_clicked()
{
QString filename = QFileDialog::getSaveFileName(this,"save file",".","Text(*.cpp *.h)");
if(filename.isEmpty())
{
QMessageBox::warning(this,"warning","file can't select");
return;
}
myFile->setFileName(filename);
bool ret = myFile->open(QIODevice::WriteOnly|QIODevice::Text);
if(!ret)
{
QMessageBox::warning(this,"warning","open failed");
return;
}
//QFile直接读取
// QString str = ui->textEdit->toPlainText();
// myFile->write(str.toLocal8Bit());
// myFile->close();
//文本流形式(支持大文本文件)
QTextStream stream(myFile);
QString str = ui->textEdit->toPlainText();
stream <<str;
stream.flush();
myFile ->close();
}
示例如下:
7、错误信息对话框——QErrorMessage
用于弹出错误信息,通过showMessage()进行错误信息的弹窗,由文本显示框和复选框组成
void Widget::on_pushButton_8_clicked()
{
errorMessageDialog->showMessage(
tr("文字"));
}
示例如下: