为QListWidget中的每个项创建一个信号

时间:2015-07-28 20:29:24

标签: pyqt qlistwidget

我想使用QListWidget创建项目列表并进行设置,以便每次单击(选择)项目时执行不同的方法。我想要解决这个问题的方法是将列表连接到一个检查索引的方法,并根据项索引生成一个连接到不同方法的信号。事情是,如果我没有按钮或任何东西,我不知道如何产生这个信号。该方法只是检查项目索引。

任何建议都将不胜感激!

1 个答案:

答案 0 :(得分:1)

直截了当的想法是将itemClicked信号连接到一个调用方法的插槽,具体取决于所点击的索引。在这种情况下,您不需要为每个项目提供信号。

但是如果你真的想为每个项目创建一个“点击”信号并将其连接到各自的插槽,你可以这样做:

  1. QListWidgetItem进行子类化并向其添加clicked信号。 How to add custom signals

  2. 在填写QListWidget时,根据索引将每个项目与其插槽连接。

  3. 将QListWidget的itemClicked信号连接到一个插槽,该插槽会发出单击项目的信号,如下所示:

    def itemClickedSlot(item):  
        item.clicked.emit()