前言
Qt为开发者提供了一些可复用的对话框,他对我们的开发是很重要的。下面我们就来学习
提示:以下是本篇文章正文内容,下面案例可供参考
如何学习标准对话框
其实在Qt中的对话框遵守相同的原则:
DialogType dialog(this); dialog.Setproperties(...);//设置属性 if(dialog.exec() == DialogType::value) { //处理具体的事情 }
其实是很简单的,很快就能学会。
QMessageBox消息对话框
这就相当于是一个QMessageBox
应用
1、为用户提示重要信息
2、强制用户操作选择
属性
设置窗口标题
setWindowTitle(QString);
设置对话框中的字符
setText(QString s);
设置图标
setIcon(Icon); Qt中有预定义的图标使用,如下: QMessageBox::NoIcon 0 the message box does not have any icon. QMessageBox::Question 4 an icon indicating that the message is asking a question. QMessageBox::Information 1 an icon indicating that the message is nothing out of the ordinary. QMessageBox::Warning 2 an icon indicating that the message is a warning, but can be dealt with. QMessageBox::Critical 3 an icon indicating that the message represents a critical problem.
设置按钮:
如下图,设置的是最下面的三个按钮,也可以设置2个1个等等…
最后:
if(messagebox.exec() == QMessageBox::Ok) { }
提示:QMessageBox::Ok只有在上面这一步设置了,我们才能写。
点击Ok后,我们就会进入if
实操
因为代码比较少,所以我直接在main.cpp中写了,大家可以在类中写
#include "form.h" #include <QApplication> #include "QMessageBox" #include <QDebug> int main(int argc, char *argv[]) { QApplication a(argc, argv); QMessageBox msg; msg.setWindowTitle("Window Title"); msg.setText("This is a message dialog!"); msg.setIcon(QMessageBox::Information); //会有三个按钮 msg.setStandardButtons(QMessageBox::Ok | QMessageBox::Cancel | QMessageBox::YesToAll); if( msg.exec() == QMessageBox::Ok ) { qDebug() << "Ok button is clicked!"; } return a.exec(); }
QFileDialog文件对话框
应用
1、打开文件
2、保存文件
属性
设置模式
setAcceptMode(); QFileDialog::AcceptOpen//打开模式 0 QFileDialog::AcceptSave//保存模式 1
设置打开/保存文件是否为1个/多个/其他
setFileMode() QFileDialog::AnyFile 0 The name of a file, whether it exists or not. QFileDialog::ExistingFile 1 The name of a single existing file. QFileDialog::Directory 2 The name of a directory. Both files and directories are displayed. However, the native Windows file dialog does not support displaying files in the directory chooser. QFileDialog::ExistingFiles 3 The names of zero or more existing files.
取文件中的数据
selectedFiles()
设置只打开哪些后缀的文件:
setNameFilter()
实操
QFileDialog dlg; dlg.setAcceptMode(QFileDialog::AcceptOpen); dlg.setNameFilter("Text(*.txt)"); dlg.setFileMode(QFileDialog::ExistingFiles); if( dlg.exec() == QFileDialog::Accepted ) { //selectFiles()返回值为QStringList,意为QString的链表 //使用他的使用需要包含QStringList的头文件 QStringList fs = dlg.selectedFiles(); for(int i=0; i<fs.count(); i++) { qDebug() << fs[i]; } }