PyQt,Qwidget 上的单击操作

发布于 2024-08-16 20:44:32 字数 300 浏览 3 评论 0原文

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

self.widget = QtGui.QWidget(self)
self.widget.setStyleSheet("QWidget { background-color: %s }" % color.name())
self.widget.setGeometry(150, 22, 50, 50)
self.connect(???)  <-- here

我应该在“???”中放入什么在创建的小部件上获取单击操作?

I have this simple problem, I can grab the event of a click on button, but now I need to handle a click over a widget, here is part of the code:

self.widget = QtGui.QWidget(self)
self.widget.setStyleSheet("QWidget { background-color: %s }" % color.name())
self.widget.setGeometry(150, 22, 50, 50)
self.connect(???)  <-- here

What should I put in the "???" to grab a click action over the created widget?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

一瞬间的火花 2024-08-23 20:44:32

你可以试试这个
我从 这个博客网站的评论框中找到了这个Jared Glass 它对我来说工作得很好,

self.widget.mouseReleaseEvent=self.myfunction

或者

self.widget.mouseReleaseEvent=lambda event:print 'working'

或者

self.widget.mouseReleaseEvent=lambda event,my_variable:self.myfunction(event,my_variable)

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

you can try this
i found this from this blog site's comment box from Jared Glass It was working fine for me

self.widget.mouseReleaseEvent=self.myfunction

or

self.widget.mouseReleaseEvent=lambda event:print 'working'

or

self.widget.mouseReleaseEvent=lambda event,my_variable:self.myfunction(event,my_variable)

only the last example is what i have written on my own rest all have been mentioned in http://popdevelop.com/2010/05/an-example-on-how-to-make-qlabel-clickable/ .
The last code helps you to pass any variables eg:widget name or widget number if multiple widgets exists.

何以畏孤独 2024-08-23 20:44:32

请改用 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_()

Use mousePressEvent instead.

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_()
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文