gpt4 book ai didi

python - PyQt:激活 QListWidget 项目

转载 作者:行者123 更新时间:2023-12-01 05:45:28 34 4
gpt4 key购买 nike

我想使用parentWidget中的事件过滤器激活listWidget中的一个项目,它是ChildWidget的一部分。以下是相关parentWidget代码的一部分:

    self.w = ChildWidget()
def eventFilter(self, source, event):
if event.type() in (QtCore.QEvent.MouseButtonPress,
QtCore.QEvent.MouseButtonDblClick):
if event.button() == QtCore.Qt.LeftButton:
self.w.listWidget.itemActivated

在 ChildWidget 中:

    self.listWidget.itemActivated.connect(self.klik)
if item.data(Qt.UserRole).toPyObject():
mp3=item.data(Qt.UserRole).toPyObject()
playsnd("/home/pi/Desktop/komunikator/Recenice/pekara/"+mp3)

事件过滤器工作正常,只需命令

self.w.listWidget.itemActivated

不工作。还有其他方法可以激活项目并触发发送项目激活信号吗?

最佳答案

In [9]: q.itemActivated
Out[9]: <bound signal itemActivated of QListWidget object at 0x1d13560>

你没有调用它。

但是让我们尝试调用它。

In [10]: q.itemActivated()
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-10-3602f33f377a> in <module>()
----> 1 q.itemActivated()

TypeError: native Qt signal is not callable

不能调用它,必须直接调用绑定(bind)过程。要发出信号,您必须使用emit。

q.itemActivated.emit(None)

关于python - PyQt:激活 QListWidget 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16267912/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com