【问题标题】:Getting Information Which QLabel Clicked in PyQT获取 QLabel 在 PyQT 中点击的信息
【发布时间】:2015-12-30 06:06:33
【问题描述】:

我有一个 QLabel 列表,想了解点击了哪个 QLabel。当我寻找使 QLabel 可点击时,此代码有效:

 labels[i].mousePressEvent = self.print_some
 def print_some(self, event):
    print("Clicked")

但我不知道点击了哪个对象。我该怎么做?

【问题讨论】:

标签: python pyqt qlabel


【解决方案1】:

您可以轻松地为事件制作自定义接收器,其中包含事件源信息:

import functools

labels[i].mousePressEvent = functools.partial(self.print_some, source_object=labels[i])

def print_some(self, event, source_object=None):
    print("Clicked, from", source_object)

【讨论】:

  • 这是一个很好的解决方案,但 eventsource_object 需要在方法签名中交换。
  • 我已经尝试并打印 'Clicked from ' this 。当我想打印像'functools.partial(self.print_some,labels[i].text())'这样的标签文本时,上面也会打印相同的内容。如何接收标签属性?
  • 我修复了代码 - 函数的第二个参数必须是关键字参数,现在检查一下
猜你喜欢
  • 2018-09-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-29
  • 2017-10-07
  • 2017-05-08
  • 1970-01-01
相关资源
最近更新 更多