Qt 标准对话框
Qt提供了一些可以复用的对话框类型,这些对话框类型全部继承与QDialo类。
Qt中标准对话框遵循相同的使用方法:
//定义对话框对象
DialogType dlg(this);
//设置对话框属性
dlg.setPrpertyXXX(value);
if(dlg.exec() == DialogType::value)
{
//获取对话框数据
Type V = dlg.getDialogValue();
//处理对话框数据
//....
}
Qt消息对话框:QMessageBox
QMessageBox 中的实用函数。
void about ( QWidget * parent, const QString & title, const QString & text ) void aboutQt ( QWidget * parent, const QString & title = QString() ) StandardButton critical ( QWidget * parent, const QString & title, const QString & text, StandardButtons buttons = Ok, StandardButton defaultButton = NoButton ) StandardButton information ( QWidget * parent, const QString & title, const QString & text, StandardButtons buttons = Ok, StandardButton defaultButton = NoButton ) StandardButton question ( QWidget * parent, const QString & title, const QString & text, StandardButtons buttons = Ok, StandardButton defaultButton = NoButton ) StandardButton warning ( QWidget * parent, const QString & title, const QString & text, StandardButtons buttons = Ok, StandardButton defaultButton = NoButton )
测试代码:
QMessageBox Mes(this); /*消息提示对话框*/ // if( Mes.information(this,"MessageBox","this is MessageBox!",QMessageBox::Ok,QMessageBox::Cancel,QMessageBox::YesAll) // == QMessageBox::Ok) // { // qDebug()<<"QMessageBox::Ok"; // } /*警告提示对话框*/ // if( Mes.warning(this,"MessageBox","this is MessageBox!",QMessageBox::Ok,QMessageBox::Cancel,QMessageBox::YesAll) // == QMessageBox::Ok) // { // qDebug()<<"QMessageBox::Ok"; // } /*问题提示对话框*/ // if( Mes.question(this,"MessageBox","this is MessageBox!",QMessageBox::Ok,QMessageBox::Cancel,QMessageBox::YesAll) // == QMessageBox::Ok) // { // qDebug()<<"QMessageBox::Ok"; // } /*关键提示对话框*/ // if( Mes.critical(this,"MessageBox","this is MessageBox!",QMessageBox::Ok,QMessageBox::Cancel,QMessageBox::YesAll) // == QMessageBox::Ok) // { // qDebug()<<"QMessageBox::Ok"; // } Mes.about(this,"MessageBox","this is MessageBox!"); // Mes.setWindowTitle("MessageBox");//设置标题 // Mes.setText("this is MessageBox~");//设置提示内容 // Mes.setIcon(QMessageBox::Warning); // Mes.setStandardButtons(QMessageBox::Ok|QMessageBox::Cancel|QMessageBox::YesAll); // if(Mes.exec() == QMessageBox::Ok) // { // qDebug()<<"QMessageBox::Ok"; // } qDebug()<<"Messege_BtnClicked";
Qt文件对话框:QFileDialog
Open Mode
——应用程序需要用户打开一个外部文件
QFileDialog fl; fl.setAcceptMode(QFileDialog::AcceptOpen);//设置为Open模式 QStringList setFs ; setFs <<"Text(*.txt)"<<"All(*.*)"; fl.setFilters(setFs); /*QFileDialog::ExistingFile 打开单个 QFileDialog::ExistingFiles 打开多个文件 */ fl.setFileMode(QFileDialog::ExistingFile); if(fl.exec() == QFileDialog::Accepted) { QStringList fs = fl.selectedFiles();//获取文件路径 文件名 for(int i=0;i<fs.count();i++) { qDebug()<<fs[i]; } } qDebug()<<"FileDialog_BtnClicked";
Save Mode
——应用程序需要将当前内容存储到用户指定的目录中去
测试代码:
QFileDialog fl; fl.setAcceptMode(QFileDialog::AcceptSave); fl.setFilter("Text(*.txt)");//设置保存属性 if(fl.exec() == QFileDialog::Accepted) { qDebug()<<"QFileDialog::Accepted"; QStringList fs = fl.selectedFiles();//获取文件路径 文件名 for(int i=0;i<fs.count();i++) { qDebug()<<fs[i]; } }
QString getExistingDirectory ( QWidget * parent = 0, const QString & caption = QString(), const QString & dir = QString(), Options options = ShowDirsOnly ) QString getOpenFileName ( QWidget * parent = 0, const QString & caption = QString(), const QString & dir = QString(), const QString & filter = QString(), QString * selectedFilter = 0, Options options = 0 ) QStringList getOpenFileNames ( QWidget * parent = 0, const QString & caption = QString(), const QString & dir = QString(), const QString & filter = QString(), QString * selectedFilter = 0, Options options = 0 ) QString getSaveFileName ( QWidget * parent = 0, const QString & caption = QString(), const QString & dir = QString(), const QString & filter = QString(), QString * selectedFilter = 0, Options options = 0 )
颜色对话框:QColorDialog
——用于提供颜色的对话框部件
实验代码:
QColorDialog* color = new QColorDialog(this); if(color->exec() == QColorDialog::Accepted) { QColor nowColor = color->currentColor();//获取颜色信息 qDebug() << nowColor;//ARGB模式显示 /*获取RGB参数*/ qDebug()<<nowColor.red(); qDebug()<<nowColor.green(); qDebug()<<nowColor.blue(); } qDebug()<<"ColorDialog_BtnClicked";
QColor类
——RGB:以红、绿、蓝为基准的三色模型
——HSV:以色调、饱和度、透明度、为基准的六角锥体模型
——CMYK:以天蓝、品红、黄色、黑为基准的全彩色印刷色彩模型
输入对话框:QInputDialog
——用于需要零时进行数据输入的场合
QInputDialog input; input.setLabelText("input double");//添加提示信息 /* QInputDialog::TextInput QInputDialog::IntInput QInputDialog::DoubleInput */ input.setInputMode(QInputDialog::DoubleInput);//设置输入属性 input.setDoubleMaximum(1000);//设置输入数字最大值 input.setDoubleMinimum(-1000); if(input.exec() == QInputDialog::Accepted) { qDebug()<<input.doubleValue();//获取输入值 } qDebug()<<"InputDialog_BtnClicked";
字体对话框:QFontDialog
——用于提供选择字体的对话框部件
QFontDialog font; if(font.exec() == QFontDialog::Accepted) { qDebug()<<font.currentFont(); } qDebug()<<"FontDialog_BtnClicked";
进度对话框:QProgressDialog
——用于显示进度信息。需要用户等待的场合
QProgressDialog progress; progress.setMaximum(100);//设置最大值 progress.setValue(50);//设置进度值 if(progress.exec() == QProgressDialog::Rejected)//关闭按钮处理 { qDebug()<<"ProgressDialogEnd"; } qDebug()<<"ProgressDialog_BtnClicked";
打印对话框:QPrintDialog
——用于设置打印相关的参数信息
QPrintDialog print ; if(print.exec() == QPrintDialog::Accepted) { QPrinter* p = print.printer(); QTextDocument td; //使用QTextDocument td.setPlainText("hello,good");//设置字符信息 p->setOutputFileName("I:\\test.pdf");//设置输出名称 td.print(p);//打印文件 } qDebug()<<"PrintDialog_BtnClicked";