簡體   English   中英

PyQt:激活QListWidget項

[英]PyQt: Activate QListWidget Item

我想使用parentWidget中的事件過濾器從作為ChildWidget一部分的listWidget激活一個項目。 這是相關的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

您無法調用它,必須直接調用綁定過程。 要發射信號,必須使用發射。

q.itemActivated.emit(None)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM