如何将事件侦听器添加到 PyQt4 中的动态 QTableWidgetItem 中



我是Python和Qt新手...

我正在开发一个 GUI 程序,该程序在开始时使用 QTableWidget 显示数据列表。

使用 setItem() 方法将行插入到表中。它们是QTableWidgetItem对象。

现在我想允许用户单击选择某一行(QTableWidgetItem),我的程序将填充辅助QTableWidget

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

最简单的

方法是使用 QTableWidget 的 itemClicked -信号:

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)

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

Qt没有"事件侦听器"。正如您提到的,您可以通过将信号连接到插槽来执行此类操作。

例如:

QObject.connect(myTableWidget, QtCore.SIGNAL("clicked()"), self.foobar)

这将导致当您单击myTableWidget时调用该方法self.foobar()。foobar 函数可以检索选择了哪个项目,并基于此填充第二个小部件。

请注意,在 connect 的最后一个参数中,您不使用括号 (foobar()),只使用方法名!

相关内容

  • 没有找到相关文章

最新更新