PyQt4中QListView的clicked()信号

1 投票
2 回答
4223 浏览
提问于 2025-04-15 23:11

我有一个正常工作的QListView,但从文档中我找不到如何让信号在新选中的项目的索引上触发。有没有什么想法?

2 个回答

0

这是我实现这个功能的一小段代码:

class VenueList(QListView):
    def __init__(self, parent, venues):
        super(VenueList, self).__init__(parent)
        self.clicked.connect(self.venue_selected)
        [...]

    def venue_selected(self, index):
        venue = self.model().data(index, VenueListModel.VenueRole)
        doStuff()

你可以在这里查看我使用的完整代码,链接是这里(第69行)。不过我得提醒你,这段代码写得不太好,需要好好重构一下。

1

在我看来,想要实现这个功能,使用QListWidget会比QListView简单一些。这样的话,你可以使用itemClicked这个信号,它会把你选中的项目发送到回调函数中。

撰写回答