qt怎么读取txt文件并且点一次按钮就刷新txt的文本
时间: 2023-08-03 07:05:01 浏览: 47
你可以使用`QFile`和`QTextStream`类来读取txt文件的内容,然后将其显示在`QTextEdit`中。为了实现在点击按钮后刷新文本,你可以将读取txt文件的代码放在按钮的槽函数中,这样每次点击按钮时都会重新读取文本并更新`QTextEdit`。
下面是一个简单的示例代码:
```c++
#include <QFile>
#include <QTextStream>
#include <QTextEdit>
#include <QPushButton>
// 槽函数,用于读取txt文件并更新QTextEdit
void refreshText(QTextEdit* textEdit, const QString& fileName) {
QFile file(fileName);
file.open(QIODevice::ReadOnly);
QTextStream in(&file);
textEdit->setText(in.readAll());
}
int main(int argc, char *argv[]) {
// 创建QApplication实例
QApplication app(argc, argv);
// 创建QTextEdit和QPushButton实例
QTextEdit textEdit;
QPushButton button("Refresh");
// 将QPushButton的clicked()信号连接到refreshText()槽函数
QObject::connect(&button, &QPushButton::clicked, [&]() {
refreshText(&textEdit, "file.txt");
});
// 读取txt文件并显示在QTextEdit中
refreshText(&textEdit, "file.txt");
// 将QTextEdit和QPushButton添加到QWidget中
QWidget window;
QVBoxLayout layout(&window);
layout.addWidget(&textEdit);
layout.addWidget(&button);
window.show();
// 运行应用程序
return app.exec();
}
```
在上面的示例代码中,我们首先创建了一个`QTextEdit`和一个`QPushButton`的实例。我们将`QPushButton`的`clicked()`信号连接到一个lambda函数中,该函数将调用`refreshText()`槽函数来读取txt文件并将其显示在`QTextEdit`中。我们还调用了`refreshText()`槽函数来初始化`QTextEdit`的文本。
最后,我们将`QTextEdit`和`QPushButton`添加到一个`QWidget`中,并使用`QVBoxLayout`来排列它们。我们显示了`QWidget`并运行了应用程序。
希望这个例子能够对你有所帮助!