使用 QFileDialog 的基本步骤通常如下:
实例化:首先,创建一个 QFileDialog 对象的实例。
设置模式:根据需要设置对话框的模式,如打开文件、保存文件等。
设置过滤器:如果需要,可以设置文件类型过滤器,以限制用户可以选择的文件类型。
显示对话框:通过调用 exec() 方法显示对话框,并在用户作出选择后执行相应的操作。
打开方案
打开一个文件
void Widget::on_btnQfileDialog_clicked()
{
QString fileName = QFileDialog::getOpenFileName(this,
tr("Open Image"), "C:/Users/wcx26/Desktop/C++QT", tr("Images (*.png *.xpm *.jpg);;Text files (*.txt);;XML files (*.xml)"));
qDebug()<<fileName; //选择文件
QFile file;
file.setFileName(fileName); //对文件进行操作
file.open(QIODevice::ReadOnly|QIODevice::Text);
char context[100] ={'\0'};
file.read(context,100);
qDebug()<<context;
file.close();
}
打开多个文件
void Widget::on_btn_morefile_clicked()
{
/*
QFileDialog qfileDialog; //实例化
qfileDialog.setFileMode(QFileDialog::ExistingFiles); //设置模式
qfileDialog.setNameFilter("*.txt");选择可选的文件类型
qfileDialog.exec();
QStringList qstrings = qfileDialog.selectedFiles();
for(QString str :qstrings ){
qDebug()<<str;
}
*/
QStringList files = QFileDialog::getOpenFileNames(this, "Open Files", "C:/Users/wcx26/Desktop/C++QT",
"Text Files (*.txt);;All Files (*)");
for(QString str :files ){
qDebug()<<str;
}
}
保存方案
保存不仅仅是有个点击保存的按键,也需要打开文件进行写入
void Widget::on_btnsave_clicked()
{
QString fileName = QFileDialog::getSaveFileName(this, tr("Save File"),
"C:/Users/wcx26/Desktop/C++QT",
tr("Images (*.png *.xpm *.jpg);;Text files (*.txt)" ));
qDebug()<<fileName;
QFile file;
file.setFileName(fileName);
file.open(QIODevice::WriteOnly| QIODevice::Text);
QTextStream out(&file);
out.setCodec("UTF-8");
out << "Qdialog Write Data to the Txt File";
file.close();