QT实现读取本地txt文件并在窗口显示
时间: 2024-05-14 13:12:26 浏览: 195
以下是一个简单的QT程序,可以实现读取本地txt文件并在窗口显示。用户可以在文本框中输入文件路径和文件名,然后点击“打开文件”按钮,程序会读取文件内容并在窗口中显示出来。
```c++
#include <QtWidgets/QApplication>
#include <QtWidgets/QTextEdit>
#include <QtWidgets/QPushButton>
#include <QtWidgets/QFileDialog>
#include <QtCore/QFile>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
// 创建窗口和控件
QWidget *window = new QWidget;
QTextEdit *textEdit = new QTextEdit;
QPushButton *openButton = new QPushButton("打开文件");
// 布局窗口和控件
QVBoxLayout *layout = new QVBoxLayout;
layout->addWidget(textEdit);
layout->addWidget(openButton);
window->setLayout(layout);
// 连接按钮的信号和槽函数
QObject::connect(openButton, &QPushButton::clicked, [=]() {
QString fileName = QFileDialog::getOpenFileName(window, "打开文件", "", "文本文件 (*.txt)");
if (!fileName.isEmpty()) {
QFile file(fileName);
if (file.open(QIODevice::ReadOnly | QIODevice::Text)) {
QTextStream in(&file);
textEdit->setText(in.readAll());
file.close();
}
}
});
// 显示窗口
window->show();
return app.exec();
}
```
在代码中,我们首先创建了一个窗口和三个控件:一个文本编辑框,一个打开文件按钮,和一个垂直布局。然后我们将这些控件添加到布局中,并将布局设置为窗口的布局。
接下来,我们连接了打开文件按钮的clicked信号和一个lambda表达式。这个lambda表达式会弹出一个文件选择对话框,然后读取所选文件的内容并将其显示在文本编辑框中。
最后,我们显示了窗口并进入了QT的事件循环。
阅读全文
相关推荐
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![7z](https://img-home.csdnimg.cn/images/20241231044736.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)