一.前言
对话框就是主窗口的子窗口弹出,以供你操作完后,才能继续对主窗口进行操作。
光说不练假把式,我们还是来边做边学。
目标图:
看到这么多是不是已经害怕了,不用怕,只要记住接口就行了,参数我们可以查找在线文档!
先做界面吧!
不会的可以问我哦,界面的拖放就不讲了!
二.文件对话框
1.选择一个文件
void MainWindow::on_pushButtonSelectFile_clicked() { QString fileName= QFileDialog::getOpenFileName( this,//父窗口是谁 "选择一个文件",//对话框标题 QDir::currentPath(),//打开对话框的路径 "文本文件(*.txt);;C/C++文件(*.c *.h *.cpp);;图片文件(*.png *.jpg *.gif);;所有文件(*.*)");//筛选器 if(!fileName.isEmpty()) { ui->plainTextEdit->appendPlainText(fileName); } }
运行结果:
点击会弹出你刚刚设置路径的文件对话框
确定后
可以通过f1来查看参数,所以我们需要的是记住接口
2.选择多个文件
用法基本与选择一个文件相同,只不过接口多了一个S,返回的是一个字符串链表而已!
void MainWindow::on_pushButtonSelectFiles_clicked() { QStringList fileNames= QFileDialog::getOpenFileNames( this, "选择多个文件", QDir::currentPath(), "文本文件(*.txt);;C/C++文件(*.c *.h *.cpp);;图片文件(*.png *.jpg *.gif);;所有文件(*.*)"); if(fileNames.count()>0) { for(int i=0;i<fileNames.count();i++) { ui->plainTextEdit->appendPlainText(fileNames[i]); } } }
运行结果:
3.选择目录
void MainWindow::on_pushButtonSelectMu_clicked() { QString fileName= QFileDialog::getExistingDirectory( this, "选择一个文件", QDir::currentPath(), QFileDialog::ShowDirsOnly);//只显示目录 if(!fileName.isEmpty()) { ui->plainTextEdit->appendPlainText(fileName); } }
运行结果:
4.保存文件
void MainWindow::on_pushButtonSaveFile_clicked() { QString fileName= QFileDialog::getSaveFileName( this, "选择一个文件", QDir::currentPath(), "文本文件(*.txt);;C/C++文件(*.c *.h *.cpp);;图片文件(*.png *.jpg *.gif);;所有文件(*.*)"); if(!fileName.isEmpty())//如果路径不为空 { //将纯文本编辑器的内容保存到txt文件中 QFile qFile(fileName); //以只写,保存到文本文件,截断的方式打开文件 if(!qFile.open(QIODevice::WriteOnly|QIODevice::Text|QIODevice::Truncate)) { return;//打开文件失败就返回 } QTextStream stream(&qFile); stream<<ui->plainTextEdit->toPlainText(); qFile.close(); ui->plainTextEdit->appendPlainText("已保存到:"+fileName); } }
运行结果:
我们来看看是不是真的保存了
哈哈看来真的保存了也。
【qt】一次性学会所有对话框2:https://developer.aliyun.com/article/1523167