在QT中,在一个窗口内显示文本文件的内容,并可以修改这个文本文件
时间: 2024-04-17 19:25:27 浏览: 223
您可以使用 QTextEdit 控件来显示和编辑文本文件的内容。以下是一个简单的示例代码:
```cpp
#include <QtWidgets>
class MainWindow : public QMainWindow {
public:
MainWindow(QWidget *parent = nullptr) : QMainWindow(parent) {
// 创建 QTextEdit 控件
textEdit = new QTextEdit(this);
setCentralWidget(textEdit);
// 创建菜单
QMenu *fileMenu = menuBar()->addMenu(tr("文件"));
QAction *openAction = fileMenu->addAction(tr("打开"));
QAction *saveAction = fileMenu->addAction(tr("保存"));
// 连接信号槽
connect(openAction, &QAction::triggered, this, &MainWindow::openFile);
connect(saveAction, &QAction::triggered, this, &MainWindow::saveFile);
}
private slots:
void openFile() {
// 打开文件对话框
QString fileName = QFileDialog::getOpenFileName(this, tr("打开文件"));
if (!fileName.isEmpty()) {
// 读取文件内容并显示在 QTextEdit 控件中
QFile file(fileName);
if (file.open(QIODevice::ReadOnly | QIODevice::Text)) {
QString content = file.readAll();
textEdit->setPlainText(content);
file.close();
}
}
}
void saveFile() {
// 保存文件对话框
QString fileName = QFileDialog::getSaveFileName(this, tr("保存文件"));
if (!fileName.isEmpty()) {
// 将 QTextEdit 控件中的内容保存到文件中
QFile file(fileName);
if (file.open(QIODevice::WriteOnly | QIODevice::Text)) {
QTextStream out(&file);
out << textEdit->toPlainText();
file.close();
}
}
}
private:
QTextEdit *textEdit;
};
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
MainWindow window;
window.show();
return app.exec();
}
```
这段代码创建了一个带有 QTextEdit 控件的窗口,并在菜单中添加了打开和保存文件的功能。当用户点击打开菜单时,会弹出文件对话框让用户选择要打开的文本文件,然后将文件内容显示在 QTextEdit 控件中。当用户点击保存菜单时,会弹出文件对话框让用户选择保存文件的路径,然后将 QTextEdit 控件中的内容保存到文件中。
您可以根据自己的需求对代码进行修改和扩展。希望对您有所帮助!
阅读全文