文件对话框(QFileDialog)
来源:互联网 发布:php项目开发流程 编辑:程序博客网 时间:2024/04/30 09:06
#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>#include <QAction>#include <QTextEdit>class MainWindow : public QMainWindow{ Q_OBJECTprivate: QAction *openaction; QAction *saveaction; QTextEdit *textedit;private slots: void openfile(); void savefile();public: MainWindow(QWidget *parent = 0); ~MainWindow();};#endif // MAINWINDOW_H
#include "mainwindow.h"#include <QMenuBar>#include <QToolBar>#include <QStatusBar>#include <QString>#include <QFileDialog>#include <QFile>#include <QIODevice>#include <QMessageBox>#include <QTextStream>MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent){ this->setWindowTitle("文件对话框"); this->setMinimumSize(300,300); openaction=new QAction(QIcon(":/new/prefix1/ico"),tr("&open"),this); openaction->setShortcuts(QKeySequence::Open); openaction->setStatusTip("打开文件"); saveaction=new QAction(QIcon(":/new/prefix2/ico2"),tr("&save"),this); saveaction->setShortcuts(QKeySequence::Save); saveaction->setStatusTip("保存文件"); QMenu *file=menuBar()->addMenu(tr("&File")); file->addAction(openaction); file->addAction(saveaction); QToolBar *toolbar=addToolBar(tr("&File")); toolbar->addAction(openaction); toolbar->addAction(saveaction); QStatusBar *statusbar=statusBar(); statusbar->addAction(openaction); statusbar->addAction(saveaction); textedit=new QTextEdit(this); setCentralWidget(textedit); connect(openaction,&QAction::triggered,this,&MainWindow::openfile); connect(saveaction,&QAction::triggered,this,&MainWindow::savefile);}void MainWindow::openfile(){ /* * 在 openFile() 函数中,我们使用 QFileDialog::getOpenFileName() 来获取需要打开的文件的路径。 * 该函数有六个参数,都是可选的: * parent:父窗口。我们前面介绍过, Qt 的标准对话框提供静态函数,用于返回一个模态对话框 * (在一定程度上这就是外观模式的一种体现); * caption:对话框标题; * dir:对话框打开时的默认目录, “.” 代表程序运行目录, “/” 代表当前盘符的根目录 * (特指 Windows 平台; Linux 平台当然就是根目录),这个参数也可以是平台相关的,比如“C:\\”等; * filter:过滤器。我们使用文件对话框可以浏览很多类型的文件,但是,很多时候我们仅希望打开特定 * 类型的文件。比如,文本编辑器希望打开文本文件,图片浏览器希望打开图片文件。过滤器就是用于过滤 * 特定的后缀名。如果我们使用“ImageFiles(*.jpg *.png)”,则只能显示后缀名是 jpg 或者 png 的文件。 * 如果需要多个过滤器,使用“;;”分割,比如“JPEG Files(*.jpg);;PNG Files(*.png)”; * selectedFilter:默认选择的过滤器; * options:对话框的一些参数设定,比如只显示文件夹等等,它的取值是 enumQFileDialog::Option, * 每个选项可以使用 | 运算组合起来。 */ QString path=QFileDialog::getOpenFileName(this,tr("打开文件"),".",tr("text files(*.txt)")); /* * QFileDialog::getOpenFileName() 返回值是选择的文件路径。我们将其赋值给 path。通过判断 * path 是否为空,可以确定用户是否选择了某一文件。 * 首先,我们创建一个 QFile 对象,将用户选择的文件路径传递给这个对象。然后我们需要打开这个文件, * 使用的是 QFile::open(),其参数是指定的打开方式,这里我们使用只读方式和文本方式打开这个文件 * (因为我们选择的是后缀名 txt 的文件,可以认为是文本文件。当然,在实际应用中,可能需要进行进 * 一步的判断)。 QFile::open() 打开成功则返回 true,由此继续进行下面的操作: * 使用 QTextStream::readAll() 读取文件所有内容,然后将其赋值给 QTextEdit 显示出来。 */ if(!path.isEmpty()){ QFile file(path); if(!file.open(QIODevice::ReadOnly|QIODevice::Text)){ QMessageBox::warning(this,tr("read file"),tr("不能打开文件").arg(path)); return; } QTextStream in(&file); textedit->setText(in.readAll()); file.close(); } else{ QMessageBox::warning(this,tr("path"),tr("你没有选择任何路径")); }}void MainWindow::savefile(){ QString path=QFileDialog::getSaveFileName(this,tr("保存文件"),".",tr("text files(*.txt)")); if(!path.isEmpty()){ QFile file(path); if(!file.open(QIODevice::WriteOnly|QIODevice::Text)){ QMessageBox::warning(this,tr("write file"),tr("不能打开文件").arg(path)); return; } QTextStream out(&file); out<<textedit->toPlainText(); file.close(); } else{ QMessageBox::warning(this,tr("path"),tr("你没有选择任何文件")); }}MainWindow::~MainWindow(){}
0 0
- 文件对话框(QFileDialog)
- 文件对话框QFileDialog 的使用
- PyQt5:QFileDialog文件对话框(22)
- PyQt5打开文件对话框QFileDialog
- (8)QFileDialog---文件打开和保存对话框
- Qt中 文件对话框QFileDialog 的使用
- Qt中 文件对话框QFileDialog 的使用
- QT——文件对话框QFileDialog
- Qt中 文件对话框QFileDialog 的使用
- Qt QFileDialog实现文件选择对话框
- QtCreator 对话框(一)QColorDialog,QFileDialog,QFontDialog,QInputDialog
- Qt学习之十二:标准对话框之二QFileDialog文件对话框
- Qt标准对话框之QFileDialog
- Qt标准对话框之QFileDialog
- QFileDialog标准对话框中文显示
- Qt标准对话框之QFileDialog
- Qt标准对话框之QFileDialog
- QFileDialog使用对话框选取本地文件
- 大量并发SQL导致数据库性能问题诊断优化
- ubuntu 16gcc g++版本降级
- CSS3 flex弹性布局
- TensorRT 2 初探秘 (一)
- python学习------1.0入门
- 文件对话框(QFileDialog)
- LeetCode (12)Integer to Roman
- 什么是PLC的响应时间
- Dojo与jQuery综合比较分析
- iOS 开发修改 searchbar 的背景颜色
- PLSQL连接Oracle报错ORA-12541:TNS:无监听程序
- 文章标题 CSU 1838: Water Pump (单调栈)
- Image对象
- 2017.4.19学习