QML中的信号,当两个spinBox值之一被更改时触发

时间:2016-01-26 05:09:15

标签: c++ qt qml

我有两个spinBox(spinBox1spinBox2),我需要一个信号来发送两个旋转框的值,我需要在旋转框的任何一个值时触发它改变了。我怎么能这样做?

我将把它与C ++插槽连接起来,稍后用C ++进行数学运算。我已经成功地用单个参数信号做了所有这些事情,只有一个触发器,但这有点复杂。

非常需要帮助和赞赏。

1 个答案:

答案 0 :(得分:0)

  1. 创建包含2个参数的信号。
  2. 创建一个内部函数,当其中一个SpinBox更改值时调用。
  3. 在#2的内部函数内部,发出#1的信号。
  4. 将信号连接到带有2个参数的插槽。

    Rectangle {
        signal somethingChanged(double, double)
    
        function exportSignals() {
            somethingChanged(spinBox1.value, spinBox2.value)
        }
    
        SpinBox {
            id: spinBox1
            onValueChanged: exportSignals()
        }
        SpinBox {
            id: spinBox2
            onValueChanged: exportSignals()
        }
    }