【问题标题】:Dynamically update QML GUI values动态更新 QML GUI 值
【发布时间】:2020-04-10 17:36:59
【问题描述】:

我有一堆必须在 GUI 上连续显示的数据。我实际上可以通过设置计时器并将新值分配给显示的值来实现它,但我不想那样做。有什么解决方案或实用的方法吗?

【问题讨论】:

  • 你试过使用“状态”吗?
  • 能否请您更具体地了解各州

标签: c++ qt qml


【解决方案1】:

我认为您有两种选择来实现这一目标:

  1. 您的所有数据都有一个Q_PROPERTY。这意味着创建一个 get 函数和一个信号
  2. 如果您想在列表或树视图下显示它们,我建议您将所有数据收集起来,放在QAbstractListModel 下。 https://doc.qt.io/qt-5/qabstractlistmodel.html

然后实现函数data, index, ecc.,你就已经为UI做好了一切

【讨论】:

    【解决方案2】:

    您是否尝试过使用 Q_Property?通知信号可能适用于您的情况。 您可以从here 找到文档。

    【讨论】:

    • Q_PROPERTY 是解决问题的唯一正确答案和正确方法。特别是对于 QML 接口。通过 C++ 设置它,并在您为此属性设置新值时发出属性更改。
    【解决方案3】:

    首先,我定义了属性并将名为 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")
    }
    
    
    

    当我应用这些步骤时,我的数据会自动更新,无需任何计时器。

    【讨论】:

      猜你喜欢
      • 2015-07-26
      • 2014-08-10
      • 1970-01-01
      • 1970-01-01
      • 2019-06-30
      • 2013-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多