qt实现:利用文本流实现如图功能: n 上面按钮:把文本框输入的 内容(姓名学号),写入文 件 n 下面按钮:读出文件内容, 显示在文本框内
时间: 2024-11-30 10:28:40 浏览: 7
人工智能-项目实践-信息管理系统-利用qt5框架实现的学生信息管理系统(文件存储,链表操作)
在Qt中实现这个功能,你可以按照以下步骤操作:
1. 创建界面布局:
- 使用QMainWindow作为主窗口,并添加两个QPushButton(上部的“写入”和下部的“读取”)、QLineEdit(用于输入姓名和学号)以及QTextEdit(显示文件内容)。
```cpp
#include <QMainWindow>
#include <QPushButton>
#include <QLineEdit>
#include <QTextEdit>
class MainWindow : public QMainWindow {
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
private slots:
void writeToFile();
void readFromFile();
};
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
// 创建布局
QVBoxLayout* layout = new QVBoxLayout();
QLineEdit* inputField = new QLineEdit(this);
QPushButton* writeButton = new QPushButton("写入", this);
QPushButton* readButton = new QPushButton("读取", this);
QTextEdit* textEditor = new QTextEdit(this);
layout->addWidget(inputField);
layout->addWidget(writeButton);
layout->addWidget(readButton);
layout->addWidget(textEditor);
QWidget* centralWidget = new QWidget(this);
centralWidget->setLayout(layout);
setCentralWidget(centralWidget);
// 连接信号槽
connect(writeButton, &QPushButton::clicked, this, &MainWindow::writeToFile);
connect(readButton, &QPushButton::clicked, this, &MainWindow::readFromFile);
}
void MainWindow::writeToFile()
{
QString content = inputField->text(); // 获取输入框的内容
QFile file("data.txt"); // 假设文件名为"data.txt"
if (file.open(QIODevice::WriteOnly | QIODevice::Text)) {
QTextStream out(&file);
out << "姓名:" << content.section(",", 0, 0) << "\n";
out << "学号:" << content.section(",", 1, 1) << "\n"; // 假设姓名和学号由逗号分隔
file.close();
} else {
QMessageBox::warning(this, "错误", "无法写入文件!");
}
}
void MainWindow::readFromFile()
{
QFile file("data.txt");
if (file.exists() && file.open(QIODevice::ReadOnly)) {
QTextStream in(&file);
textEditor->setText(in.readAll());
file.close();
} else {
QMessageBox::information(this, "提示", "文件不存在或无法打开!");
}
}
```
阅读全文