如何在PyQt4中向动态QTableWidgetItem添加事件监听器?

hob*_*all 0 python qt event-handling pyqt4 qtablewidget

我是Python和Qt新手......

我正在开发一个GUI程序,它QTableWidget在开始时显示一个数据列表.

使用该setItem()方法将行插入表中.它们是QTableWidgetItem物体.

现在我想让用户点击选择某一行(QTableWidgetItem),我的程序将填充一个辅助行QTableWidget.

我了解到有一种叫做信号和插槽的东西.我会用那个吗?也有使用的例子installEventFilter(),但它不适合QTableWidgetItem.

l4m*_*mpi 6

最简单的方法就是使用itemClickedQTableWidget 的-signal:

def handle_item_clicked(tableItem):
    #the callback, called when an item is clicked, with the item as an argument
    #populate the secondary table in some way

#register the callback with the QTableWidget
yourTableWidget.itemClicked.connect(handle_item_clicked)
Run Code Online (Sandbox Code Playgroud)

您还可以使用currentItemChanged提供当前和之前选择的信号(例如,如果用户取消选择项目,则可以清除或隐藏辅助窗口小部件,在这种情况下,当前项目将为"无").