2
我有一個Widget(QTabeleWidget,QLabels和一些QButtons)。它是在Qt-Designer中構建的。現在我必須執行一些事情。爲此,我需要mousePressEvent。 通常我會寫一個子類,寫這樣的事:如何在PyQt中爲Qt-Designer構件實現MousePressEvent
def mousePressEvent(self, event):
if event.button() == Qt.LeftButton:
print "left"
else:
print 'right'
但我不知道怎麼做,在設計器中創建一個Widget。 我需要它爲QTabeleWidget。希望可以有人幫幫我。我試圖在谷歌的幫助下解決問題,但沒有成功。 這個網站幫了我很多次,所以我想我會試試看。
謝謝你的回答。我試過了,但它不起作用。 如果我點擊窗口,而不是一個小部件,那麼它會觸發。 mousePressEvent的作品。但是如果我點擊QTableWidget或QLabel,mousePressEvent不會被執行。 例如,如果我想從QTableWidget itemSelectionChanged信號,然後我寫: 「def on_myTable_itemSelectionChanged(self):」「 所以我正在尋找相當於mousePressEvent的東西。 希望我的解釋不壞。 – user427305 2010-08-22 00:03:35
自動佈線存在的信號,但不是事件。當你子類化並實現'mousePressEvent'時,你會收到給定小部件的事件,但只能接收小孩不接受事件的事件。由於小部件中有小部件,因此每個小部件都在父級看到它之前接收並處理該事件。當沒有相關信號時,處理這個問題的一個好方法是使用'installEventFilter'安裝一個事件過濾器。 – 2010-08-22 04:20:44
謝謝!它適用於installEventFilter。這就是我一直在尋找的。 – user427305 2010-08-22 10:23:26