2017-10-16 95 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