PyQt,点击Qwidget上的动作

Lop*_*poc 8 python qt4 pyqt click

我有这个简单的问题,我可以抓住点击按钮的事件,但现在我需要处理一个小部件的点击,这里是代码的一部分:

self.widget = QtGui.QWidget(self)
self.widget.setStyleSheet("QWidget { background-color: %s }" % color.name())
self.widget.setGeometry(150, 22, 50, 50)
self.connect(???)
Run Code Online (Sandbox Code Playgroud)

好吧,我该怎么办?在创建的小部件上抓取点击操作?先谢谢了

Ja8*_*its 12

你可以尝试这个我从这个博客网站的评论框中找到了这个来自贾里德玻璃它对我来说很好

self.widget.mouseReleaseEvent=self.myfunction
Run Code Online (Sandbox Code Playgroud)

要么

self.widget.mouseReleaseEvent=lambda event:print 'working'
Run Code Online (Sandbox Code Playgroud)

要么

self.widget.mouseReleaseEvent=lambda event,my_variable:self.myfunction(event,my_variable)
Run Code Online (Sandbox Code Playgroud)

只有最后一个例子是我自己写的所有内容都在http://popdevelop.com/2010/05/an-example-on-how-to-make-qlabel-clickable/中提到过.最后一个代码可以帮助您传递任何变量,例如:如果存在多个小部件,则小部件名称或小部件编号.


Jes*_*dge 6

请改用mousePressEvent.

import sys

from PyQt4.QtGui import QWidget, QApplication

class MyWidget(QWidget):
    def mousePressEvent(self, event):
        print "clicked"

app = QApplication(sys.argv)

widget = MyWidget()
widget.show()

app.exec_()
Run Code Online (Sandbox Code Playgroud)