2017-10-16 180 views
2

我有残疾的QAction菜单元素:如何获取禁用QAction元素的触发信号?

QAction *item = new QAction(itemTitle); 
item->setEnabled(false); 

我用的槽连接按下元素之后调用功能,但它的作品只启用了元素:

QObject::connect(item, SIGNAL(triggered()), this, SLOT(func())); 

我的问题是如何我可以触发一些功能禁用QAction元素

的Qt 5.9.2,MSVC2017 64位编译器

回答

1

setEnabled()属性保存小部件是否被启用。

通常,一个已启用的窗口小部件处理键盘和鼠标事件; a 已禁用的小部件不是。 QAbstractButton是一个例外。

当一个窗口小部件被禁用时,所有的鼠标和键盘事件也被禁用。

更多信息:http://doc.qt.io/qt-4.8/qwidget.html#enabled-prop

+0

所以没有办法做到这一点?如果以某种方式用QT样式表模拟禁用的QAction元素,而不是使用'setEnabled()'本身,这是可能的吗? – semanser

+1

CSS禁用是相同的。也许你可以改变'backcolor','border','reimplement events'来模拟禁用。其他方面不可能。 – aghilpro

+0

是的,这就是我目前正在寻找的 – semanser