QT 打开文件并且显示文件内容 (QFileDialog QMessageBox QTextStream )
QFile
QTextStream
QMessageBox
QFileDialog
应用示例
mainwindow.cpp
#include "mainwindow.h" #include "ui_mainwindow.h" #include <QFile> #include <QTextStream> #include <QMessageBox> #include <QFileDialog> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) { ui->setupUi(this); } MainWindow::~MainWindow() { delete ui; } mainwindow.cpp void MainWindow::on_pushButton_2_clicked() { //QFile file("./mytest1.txt"); QFile file("/mnt/hgfs/temp/QFileDemo/mytext.txt"); if(!file.open(QFile::WriteOnly | QFile::Text)){ QMessageBox::warning(this,"title","file not open"); } QTextStream out(&file); QString text= ui->plainTextEdit->toPlainText(); out<<text; file.flush(); file.close(); } void MainWindow::on_pushButton_clicked() { QString filter="All File(*.*);;Text File(*.txt);;xml File(*.xml)"; QString file_name=QFileDialog::getOpenFileName(this,"open a file","/",filter); QFile file(file_name); //QFile file("/mnt/hgfs/temp/QFileDemo/mytext.txt"); if(!file.open(QFile::ReadOnly | QFile::Text)){ QMessageBox::warning(this,"title","file not open"); } QTextStream in(&file); QString text=in.readAll(); ui->plainTextEdit->setPlainText(text); file.close(); }
mainwindow.h
#ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> QT_BEGIN_NAMESPACE namespace Ui { class MainWindow; } QT_END_NAMESPACE class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent = nullptr); ~MainWindow(); private slots: void on_pushButton_2_clicked(); void on_pushButton_clicked(); private: Ui::MainWindow *ui; }; #endif // MAINWINDOW_H