我需要变更并储存变更后的label_3的值,变更前是“库存:114”,变更后的值需要可以留到下一次的使用(非程序重启,而是再一次进入该窗口时)
时间: 2024-02-19 17:03:25 浏览: 16
在您需要储存数据的时候,推荐使用QSettings类进行配置文件的读写操作。QSettings类可以方便地读取和写入应用程序的配置信息,包括窗口状态、用户设置等等。在您的情况下,您可以将label_3的值作为一个配置信息进行储存和读取。
以下是一个可能的实现方法:
```
#include "menu.h"
#include "ui_menu.h"
#include <QSettings>
menu::menu(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::menu)
{
ui->setupUi(this);
// 从配置文件中读取label_3的值
QSettings settings("MyApp", "MyApp");
int stock = settings.value("stock", 114).toInt();
ui->label_3->setText("库存:" + QString::number(stock));
}
menu::~menu()
{
// 在析构函数中保存label_3的值到配置文件
QSettings settings("MyApp", "MyApp");
int stock = ui->label_3->text().split(":").last().toInt();
settings.setValue("stock", stock);
delete ui;
}
void menu::updateLabel(int value)
{
QString text = QString::number(value);
ui->label->setText(text);
// 更新 label_3 的文本并保存到配置文件
int stock = ui->label_3->text().split(":").last().toInt();
int newStock = stock - value;
ui->label_3->setText("库存:" + QString::number(newStock));
QSettings settings("MyApp", "MyApp");
settings.setValue("stock", newStock);
}
```
在这个实现中,我们在menu类的构造函数中,从配置文件中读取label_3的值。如果配置文件中没有储存该值,则使用默认值114。在menu类的析构函数中,我们将label_3的值从字符串中解析出来,并将其储存到配置文件中。
在updateLabel()函数中,我们更新了label_3的文本,并将新的值保存到配置文件中。这样,下一次进入该窗口时,label_3的值就会被自动恢复并显示在窗口上了。