簡體   English   中英

在QWidget上安裝EventFilter(qt4.4.3 / kde4)

[英]install EventFilter on QWidget (qt4.4.3/kde4)

我有一個K *窗口,在其中,需要過濾事件的窗口小部件。

例如,我不想點擊它的可能性......

我怎樣才能做到這一點?

我有沒有使用eventfilters? 在這種情況下,最好的方法是什么?


但我的問題是我無法子類化我的小部件,因為它是一個TerminalInterface-> widget(),而不是像其他人一樣的對象:\\

除了第一個答案中的setEnabled大錘方法外,還有另外兩種方法,其中一種方法是使用eventfilters。

另一種是子窗口小部件,然后重新實現鼠標*事件。 簡單地將它們留空將阻止任何鼠標交互。 所以:

MyWidget:public QSomeWidget {Q_OBJECT public:MyWidget(QWidget * parent);

protected:void mousePressEvent(QMouseEvent *){} .. etc ..};

QWidget有一個enabled屬性。 只需調用widget->setEnabled(false) ,這將阻止它接受鼠標點擊。 它也可能會修改它的外觀:例如, QPushButton將變灰。

事件過濾器聽起來像是你想要的過度殺戮。

看起來像eventFilter()就是你想要的。

以下是討論它的Qt文檔部分: 事件過濾器

基本上,您必須創建一個繼承QObject的類,然后實現虛函數eventFilter() 然后使用過濾器作為參數調用要過濾的對象上的installEventFilter()方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM