用qt写一个读取文件的程序
时间: 2023-11-26 22:02:48 浏览: 24
以下是一个使用 Qt 的程序,可以读取指定文件并将其内容显示在 QTextEdit 中。您可以根据自己的需要进行修改和调整。
```cpp
#include <QtWidgets>
class FileReader : public QWidget
{
public:
FileReader(QWidget *parent = nullptr)
: QWidget(parent)
{
// 创建控件
m_filePathEdit = new QLineEdit;
m_filePathBtn = new QPushButton(tr("选择文件"));
m_fileContentEdit = new QTextEdit;
m_loadBtn = new QPushButton(tr("读取文件"));
// 设置布局
QHBoxLayout *filePathLayout = new QHBoxLayout;
filePathLayout->addWidget(m_filePathEdit);
filePathLayout->addWidget(m_filePathBtn);
QVBoxLayout *mainLayout = new QVBoxLayout;
mainLayout->addLayout(filePathLayout);
mainLayout->addWidget(m_fileContentEdit);
mainLayout->addWidget(m_loadBtn);
setLayout(mainLayout);
// 连接信号和槽
connect(m_filePathBtn, &QPushButton::clicked, this, &FileReader::selectFile);
connect(m_loadBtn, &QPushButton::clicked, this, &FileReader::loadFile);
}
private:
QLineEdit *m_filePathEdit;
QPushButton *m_filePathBtn;
QTextEdit *m_fileContentEdit;
QPushButton *m_loadBtn;
void selectFile()
{
QString filePath = QFileDialog::getOpenFileName(this, tr("选择文件"), ".", tr("所有文件 (*.*)"));
if (!filePath.isEmpty()) {
m_filePathEdit->setText(filePath);
m_fileContentEdit->clear();
}
}
void loadFile()
{
QString filePath = m_filePathEdit->text();
if (filePath.isEmpty()) {
QMessageBox::warning(this, tr("警告"), tr("请选择要读取的文件!"));
return;
}
QFile file(filePath);
if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) {
QMessageBox::warning(this, tr("警告"), tr("无法打开文件:") + file.errorString());
return;
}
QTextStream in(&file);
m_fileContentEdit->setPlainText(in.readAll());
}
};
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
FileReader reader;
reader.show();
return app.exec();
}
```
在上述代码中,我们创建了一个名为 `FileReader` 的自定义窗口类,该类继承自 QWidget。在窗口中,我们创建了四个控件:
- `m_filePathEdit`:用于显示要读取的文件路径的 QLineEdit。
- `m_filePathBtn`:用于选择要读取的文件的 QPushButton。
- `m_fileContentEdit`:用于显示文件内容的 QTextEdit。
- `m_loadBtn`:用于触发读取文件操作的 QPushButton。
我们使用 QVBoxLayout 和 QHBoxLayout 来布局这些控件,并使用 `setLayout` 将其作为窗口的主布局。
在 `selectFile` 槽函数中,我们使用 QFileDialog 来选择要读取的文件,并将其路径显示在 `m_filePathEdit` 中。在 `loadFile` 槽函数中,我们使用 QFile 和 QTextStream 来读取文件内容,并将其显示在 `m_fileContentEdit` 中。
最后,在 `main` 函数中,我们创建了一个 QApplication 实例和一个 FileReader 实例,并将其显示出来。