qt中,如何利用this->accept(),点击按钮,将一个QLineEdit中的数据保存到文件中,如果数据未改变就不保存
时间: 2023-06-07 21:06:48 浏览: 90
您好,您的问题是如何在 Qt 中利用 this->accept() ,点击按钮,将一个 QLineEdit 中的数据保存到文件中,如果数据未改变则不保存。
可以利用以下步骤来实现:
1. 创建一个按钮,例如保存按钮,并将其与一个槽函数绑定。
2. 在槽函数中获取 QLineEdit 中的数据,如果数据未改变则不保存。
3. 如果数据有更改,则使用 QFile 和 QTextStream 将数据保存到文件中。
以下是具体实现,您可以将其添加到您的代码中进行测试:
// 定义一个 QlineEdit 对象
QLineEdit *lineEdit = new QLineEdit(this);
// 定义一个 QPushButton 对象
QPushButton *saveBtn = new QPushButton("Save", this);
// 将保存按钮与 saveSlot 函数进行绑定
connect(saveBtn, &QPushButton::clicked, this, &MainWindow::saveSlot);
// 定义一个私有的槽函数,用于保存数据
void MainWindow::saveSlot()
{
// 获取 QLineEdit 中的文本
QString text = lineEdit->text();
// 如果文本未改变,则不保存
if (text == m_text)
{
return;
}
// 如果文本有更改,则将其保存到文件中
QFile file("data.txt");
if (file.open(QIODevice::WriteOnly | QIODevice::Text))
{
QTextStream stream(&file);
stream << text << endl;
file.close();
}
// 更新 m_text 变量,用于下次比较
m_text = text;
}
其中,m_text 为一个成员变量,用于保存上一次的文本,用于下次比较。
阅读全文