qt 判断结构体中的数据是否修改,如有修改则将修改后的结构体数据应用到全局,相应的展示控件如treewidger或者tablewidgetitem随即更新,展示完整示例代码
时间: 2024-02-20 10:56:37 浏览: 86
用qt利用tablewidget等控件
可以通过重载结构体的等于运算符和不等于运算符来判断结构体中的数据是否被修改。
示例代码如下:
```cpp
#include <QtCore/QCoreApplication>
#include <QtCore/QDebug>
struct Data
{
int a;
int b;
int c;
bool operator==(const Data& other) const
{
return a == other.a && b == other.b && c == other.c;
}
bool operator!=(const Data& other) const
{
return !(*this == other);
}
};
class GlobalData
{
public:
static Data data;
};
Data GlobalData::data = { 1, 2, 3 };
void updateGlobalData(const Data& newData)
{
if (GlobalData::data != newData) {
GlobalData::data = newData;
// 相应的展示控件如treewidger或者tablewidgetitem随即更新
qDebug() << "GlobalData::data updated:" << GlobalData::data.a << GlobalData::data.b << GlobalData::data.c;
}
}
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
// 修改数据
Data newData = { 1, 3, 3 };
qDebug() << "New data:" << newData.a << newData.b << newData.c;
// 判断结构体中的数据是否被修改
updateGlobalData(newData);
return a.exec();
}
```
运行结果如下:
```
New data: 1 3 3
GlobalData::data updated: 1 3 3
```
阅读全文