【发布时间】:2020-04-10 17:36:59
【问题描述】:
我有一堆必须在 GUI 上连续显示的数据。我实际上可以通过设置计时器并将新值分配给显示的值来实现它,但我不想那样做。有什么解决方案或实用的方法吗?
【问题讨论】:
-
你试过使用“状态”吗?
-
能否请您更具体地了解各州
我有一堆必须在 GUI 上连续显示的数据。我实际上可以通过设置计时器并将新值分配给显示的值来实现它,但我不想那样做。有什么解决方案或实用的方法吗?
【问题讨论】:
我认为您有两种选择来实现这一目标:
Q_PROPERTY。这意味着创建一个 get 函数和一个信号QAbstractListModel 下。
https://doc.qt.io/qt-5/qabstractlistmodel.html
然后实现函数data, index, ecc.,你就已经为UI做好了一切
【讨论】:
您是否尝试过使用 Q_Property?通知信号可能适用于您的情况。 您可以从here 找到文档。
【讨论】:
Q_PROPERTY 是解决问题的唯一正确答案和正确方法。特别是对于 QML 接口。通过 C++ 设置它,并在您为此属性设置新值时发出属性更改。
首先,我定义了属性并将名为 payloadChanged 的通知器添加到我的类的信号中。
Q_PROPERTY(QList<qreal> PayloadList READ getPayloadList NOTIFY payloadChanged)
其次,
qmlRegisterType<<YOUR_CLASS_NAME>>("sample1.sample2", 1, 0, "<QML_ITEM_NAME>");
终于
QML_ITEM_NAME{
console.log("PROPERTY")
}
当我应用这些步骤时,我的数据会自动更新,无需任何计时器。
【讨论】: