关键词:QMessageBox、QFileDialog
1. 标准对话框
- Qt为开发者提供了一些可复用的对话框类型
- Qt提供的可复用对话框全部继承自
QDialog类
对话框类型 - Qt中标准对话框遵循相同的使用方式
2. 消息对话框
消息对话框的主要作用 :
1) 为用户提示重要信息
2)强制用户进行操作选择消息对话框的使用方式:
QMessageBox msg(this); // 构造消息对话框对象
msg.setWindowTitle("Message Title"); // 设置相关属性
msg.setText("This is message dialog!");
msg.setIcon(QMessageBox::Information);
msg.setStandardButtons(QMessageBox::Ok | QMessageBox::Cancel);
if( msg.exec() == QMessageBox::Ok)
{
qDebug() << "Ok button is clicked!";
}
-
QMessageBox中的实用函数
// the use of information:
QMessageBox msg(this);
int standBtn = msg.information(this,
"Message title",
"this is content!",
QMessageBox::Ok | QMessageBox::Cancel);
if( standBtn == QMessageBox::Ok )
{
qDebug() << "information ok";
}
else if ( standBtn == QMessageBox::Cancel )
{
qDebug() << "information cancal";
}
// the use of question:
QMessageBox msg(this);
int ret = msg.question(this,
"Message title-->question",
"the use of question",
QMessageBox::Ok | QMessageBox::Cancel,
QMessageBox::Ok);
if( ret == QMessageBox::Ok )
{
qDebug() << "question::Ok";
}
else if( ret == QMessageBox::Cancel )
{
qDebug() << "question::Cancel";
}
else
{
qDebug() << "Error";
}
// the use of waring:
QMessageBox msg(this);
int ret = msg.warning(this,
"Message title-->waring",
"the use of waring",
QMessageBox::Ok | QMessageBox::Cancel,
QMessageBox::Ok);
if( ret == QMessageBox::Ok )
{
qDebug() << "waring::Ok";
}
else if( ret == QMessageBox::Cancel )
{
qDebug() << "waring::Cancel";
}
else
{
qDebug() << "Error";
}
// the use of critical:
QMessageBox msg(this);
int ret = msg.critical(this,
"Message title-->critical",
"the use of critical",
QMessageBox::Ok | QMessageBox::Cancel,
QMessageBox::Ok);
if( ret == QMessageBox::Ok )
{
qDebug() << "critical::Ok";
}
else if( ret == QMessageBox::Cancel )
{
qDebug() << "critical::Cancel";
}
else
{
qDebug() << "Error";
}
// the use of about:
QMessageBox msg(this);
msg.about(this,"Message title-->about","the use of about");
3. 文件对话框
文件对话框常用情形
1)Open Mode:应用程序中需要用户打开一个外部的文件
2)Save Mode:应用程序中需要将当前内容存储于用户指定的外部文件中-
文件对话框的使用方式
文件类型过滤器
1)在文件对话框中可以通过文件后缀定义过滤器
2)过滤器定义规则:
显示名(*.后缀1 *.后缀2 ... *.后缀N)
如:
"Image(*.png *.jpg *.xpm)"
fd.setFilter(".h(*.h)");
// 文件打开对话框
void Dialog::OpenFileBtn_Clicked()
{
QFileDialog dlg(this);
dlg.setAcceptMode(QFileDialog::AcceptOpen);
dlg.setFilter("cpp(*.cpp)"); // 添加文件过滤器
dlg.setFileMode(QFileDialog::ExistingFile); // 选择单个文件, 如果需要选择多个文件则为:ExistingFiles
if( dlg.exec() == QFileDialog::Accepted )
{
QStringList fs = dlg.selectedFiles();
for(int i=0; i<fs.length(); i++)
{
qDebug() << fs[i];
}
}
}
// 文件存储对话框
void Dialog::SaveFileBtn_Clicked()
{
QFileDialog dlg(this);
dlg.setAcceptMode(QFileDialog::AcceptSave);
if( dlg.exec() == QFileDialog::Accepted )
{
QStringList fs = dlg.selectedFiles();
for(int i=0; i<fs.length(); i++)
{
qDebug() << fs[i];
}
}
}
-
QFileDialog中的实用函数
4. 小结
- Qt中提供了多个可复用的对话框类型
1) 继承于QDialog类
2) 遵循相同的使用方式 -
QMessageBox用于提示重要的程序信息 -
QFileDialog用于获取系统中的文件路径
声明:此文章仅是本人在学习狄泰QT实验分析课程所做的笔记,文章中包含狄泰软件资料内容,一切版权归狄泰软件所有!
实验环境:ubuntu10 + Qt Creator2.4.1 + Qt SDK 4.7.4




