textreader.h
#ifndef TXTREADER_H
#define TXTREADER_H
#include <QWidget>
class QTextEdit;
class QPushButton;
class TxtReader : public QWidget
{
Q_OBJECT
public:
TxtReader(QWidget *parent = 0);
protected slots:
void readTxtFile();
protected:
QTextEdit *txtEdit;
QPushButton *openBtn;
};
#endif // TXTREADER_H
textreader.htextreader.cpp
#include "txtreader.h"
#include <QVBoxLayout>
#include <QTextEdit>
#include <QPushButton>
#include <QFont>
#include <QFileDialog>
#include <QFile>
#include <QTextStream>
TxtReader::TxtReader(QWidget *parent):QWidget(parent)
{
txtEdit = new QTextEdit;
txtEdit->setFont(QFont("Courier",12, QFont::Bold));
openBtn = new QPushButton("Open Text File");
QVBoxLayout *layout = new QVBoxLayout;
layout->addWidget(txtEdit);
layout->addWidget(openBtn);
setLayout(layout);
resize(500,400);
connect(openBtn, SIGNAL(clicked()), this, SLOT(readTxtFile()));
}
void TxtReader::readTxtFile()
{
QString fileName = QFileDialog::getOpenFileName(this, "open text file", "",
"Text files(*.txt *.java *.h);;ALL file(*.*)");
QFile file(fileName);
if(file.open(QIODevice::ReadOnly))
{
this->setWindowTitle(fileName);
QTextStream stream(&file);
txtEdit->setText(stream.readAll());
}
}
main.cpp
#include <QApplication>
#include "txtreader.h"
int main(int argc, char**argv)
{
QApplication app(argc, argv);
TxtReader *reader = new TxtReader;
reader->show();
return app.exec();
}
运行效果
选择文件
文件内容