1.对话框种类
为应用程序设计提供了一些常用的标准对话框,如打开文件对话框、选择颜色对话框、信息提示和确认选择对话框、标准输入对话框等,用户无需再自己设计这些常用的对话框,这样可以减少程序设计工作量。
对话框 | 常用静态函数名称 | 函数功能 |
---|---|---|
QFileDialog 文件对话框 | QString getOpenFileName() QStringList getOpenFileNames() QString getSaveFileName() QString getExistingDirectory() QUrl getOpenFileUrl() | 选择打开一个文件 选择打开多个文件 选择保存一个文件 选择一个己有的目录 选择打幵一个文件,可选择远程网络文件 |
QcolorDialog 颜色对话框 | QColor getColor() | 选择颜色 |
QFontDialog 字体对话框 | QFont getFont() | 选择字体 |
QinputDialog 输入对话框 | QString getText() int getlnt() double getDouble() QString getltem() QString getMultiLineText() | 输入单行文字 输入整数 输入浮点数 从一个下拉列表框中选择输入 输入多行字符串 |
QMessageBox 消息框 | StandardButton information() StandardButton question() StandardButton waming() StandardButton critical() void about() void aboutQt() | 信息提示对话框 询问并获取是否确认的对话框 警告信息提示对话框 错误信息提示对话框 设置自定义信息的关于对话框 关于Qt的对话框 |
2.QFileDialog 对话框
选择打开一个文件
//设置打开路径
QString filePath = "F://";
//对话框标题
QString dlgTitle="选择一个文件";
//文件过滤器
QString filter="文本文件(*.txt);;图片文件(*.jpg *.gif *.png);;所有文件(*.*)";
//打开对话框
QString fileName=QFileDialog::getOpenFileName(this,dlgTitle,filePath,filter);
//选择打开多个文件
QFileDialog::getOpenFileNames()
选择保存文件名
//设置打开路径
QString filePath = "F://";
//对话框标题
QString dlgTitle="保存文件";
//文件过滤器
QString filter="文本文件(*.txt);;h文件(*.h);;C++文件(.cpp);;所有文件(*.*)";
//打开对话框
QString fileName=QFileDialog::getSaveFileName(this,dlgTitle,filePath,filter);
3.QColorDialog 对话框
//获取现有palette
QPalette pal=ui->plainTextEdit->palette();
//现有的文字颜色
QColor iniColor=pal.color(QPalette::Text);
//打开颜色对话框
QColor color=QColorDialog::getColor(iniColor,this,"选择颜色");
//选择有效
if (color.isValid())
{
//palette 设置选择的颜色
pal.setColor(QPalette::Text,color);
}
4.QFontDialog 对话框
//获取文本框的字体
QFont iniFont=ui->plainTextEdit->font();
bool ok=false;
//选择字体
QFont font=QFontDialog::getFont(&ok,iniFont);
//选择有效
if (ok)
ui->plainTextEdit->setFont(font);
5.QInputDialog标准输入对话框
QString dlgTitle="输入文字对话框";
QString txtLabel="请输入文件名";
QString defaultInput="新建文件.txt";
//正常文字输入
QLineEdit::EchoMode echoMode=QLineEdit::Normal;
bool ok=false;
QString text = QInputDialog::getText(this, dlgTitle,txtLabel, echoMode,defaultInput, &ok);
if (ok && !text.isEmpty())
ui->plainTextEdit->appendPlainText(text);
6.QMessageBox 消息对话框
//消息提示框
QMessageBox::information(this, dlgTitle, strInfo,
QMessageBox::Ok,QMessageBox::NoButton);
//警告框
QMessageBox::warning(this, dlgTitle, strInfo);
//错误框
QMessageBox::critical(this, dlgTitle, strInfo);
//关于
QMessageBox::about(this, dlgTitle, strInfo);