C++ Qt:更改用户变量表示控件的更改';s州

C++ Qt:更改用户变量表示控件的更改';s州,c++,qt,data-binding,C++,Qt,Data Binding,是否可以通过更改用户定义变量的值来指示某些Qt控件属性的更改(对更改值执行操作)。我声明了多个函数经常使用的inta。现在我需要构造一个关系:如果(a==0),那么我的控件处于非活动状态否则我的控件处于活动状态。(我的灵感来自C#数据绑定。) 在您的访问器中,方法会发出一个连接到您希望执行的操作的信号。在Qt中,控件通过QWidget::setEnabled启用/禁用。您需要做的是创建一个子类,从中派生所有gui窗口,在该子类中定义一个函数来设置此变量并调用setEnabled。像这样: cla

是否可以通过更改用户定义变量的值来指示某些Qt控件属性的更改(对更改值执行操作)。我声明了多个函数经常使用的
inta
。现在我需要构造一个关系:
如果(a==0),那么
我的控件处于非活动状态
否则
我的控件处于活动状态。(我的灵感来自C#数据绑定。)


在您的访问器中,方法会发出一个连接到您希望执行的操作的信号。

在Qt中,控件通过QWidget::setEnabled启用/禁用。您需要做的是创建一个子类,从中派生所有gui窗口,在该子类中定义一个函数来设置此变量并调用setEnabled。像这样:

class Widget : public QWidget
{
   ...
   MySetEnabled(bool b)
   {
      a = b;
      setEnabled(b);
   }

   int a;
};

但是我必须重写所有使用
a
变量的函数,这是我想要避免的部分。我在寻找一些关系,比如:改变
a
的状态会导致发出我可以连接到setEnabled的信号。这可能吗?我并不是说我必须在这里使用信号。ZaTaTaas简单地说不,没有办法像这样监视C++中的变量。如果我可以在代码的状态改变上发出信号。