文件选择对话框 QFileDialog
void Widget::on_btnQFileDialog_clicked()
{
QString fileName = QFileDialog::getOpenFileName(this, tr("Open File"),
"D:/home",
tr("Text (*.txt)"));
qDebug() << fileName;
// 1.打开文件
QFile file(fileName);
if(!file.open(QIODevice::ReadOnly | QIODevice::Text))
{
qDebug() << "flie open error";
}
// 2.读取文件
QTextStream in(&file);
in.setCodec("UTF-8");
while (!in.atEnd())
{
QString context = in.readLine();
// 3.输出文件内容
qDebug() << context;
qDebug() << "=====================";
}
// 4.关闭
file.close();
}
QFileDialog开发流程
实例化: 首先,创建一个 QFileDialog 对象的实例。
QFileDialog qFileDialog;
设置模式: 根据需要设置对话框的模式,如打开文件、保存文件等。
qFileDialog.setFileMode(QFileDialog::ExistingFiles);
设置过滤器: 如果需要,可以设置文件类型过滤器,以限制用户可以选择的文件类型。
qFileDialog.setNameFilter(tr(“Images (*.png .xpm .jpg);;Text files (.txt);;XML
files (.xml)”));
显示对话框: 通过调用 exec() 方法显示对话框,并在用户作出选择后执行相应的操作。
qFileDialog.exec();
void Widget::on_btnSe_clicked()
{
QFileDialog qFileDialog;
qFileDialog.setFileMode(QFileDialog::ExistingFiles);
qFileDialog.setNameFilter("*.txt");
qFileDialog.exec();
QStringList qstrings = qFileDialog.selectedFiles();
for (QString str: qstrings)
{
qDebug() << str;
}
}
QFileDialog 保存
void Widget::on_btnSave_clicked()
{
QString fileName = QFileDialog::getSaveFileName(this, tr("Save File"),
"D:/untitled.txt",
tr("Text (*.txt *.doc)"));
qDebug() << fileName;
// 1.打开文件
QFile file;
file.setFileName(fileName);
if(!file.open(QIODevice::WriteOnly | QIODevice::Text))
{
qDebug() << "flie open error";
}
// 2.写入
QTextStream out(&file);
out.setCodec("UTF-8");
out << "Qdialog Write Data to the Txt File";
// 3.关闭
file.close();
}