gpt4 book ai didi

python - 如何找出一个QPushbutton属于哪个QTableWidget?

转载 作者:行者123 更新时间:2023-12-02 04:29:33 32 4
gpt4 key购买 nike

我有两个QTableWidgetItems。每个都有多个 QPushButtons 设置为其中的单元格小部件。

目前,对于一个QTableWidget,我正在使用self.sender()来找出正在按下的按钮的行和列:

button = self.sender()
index = self.Table.indexAt(button.pos())
currentRow = index.row()
mydata = str(self.Table.item(currentRow, 2).text())

但是,我想将两个表的 QpushButtons 连接到同一个函数。因此,如果我有表 A 和表 B 都将 QPushButtons 连接到相同的功能。

当按钮被点击时,我如何知道它是属于表 A 还是表 B?

最佳答案

正如 Matyas Kuti 所说,您可以使用 parent。我为此做了一个例子。

from PySide import QtGui

class MyTableWidget(QtGui.QTableWidget):

def __init__(self):
super().__init__(None)
button = QtGui.QPushButton('Click me', self)
button.clicked.connect(self.buttonClicked)
self.setCellWidget(2, 1, button)

def buttonClicked(self):
button = self.sender()
print(button.parent() is self)


app = QtGui.QApplication([])
table = MyTableWidget()
table.show()
app.exec_()

单击按钮时,输出为True。示例位于 Python 3.X 和 PySide 中,但也应适用于所有 Python 和 PyQt。


编辑:如果您没有直接从 QTableWidget 继承,但 QTableWidget 和按钮都是另一个对象的子级,只需在公共(public)对象中存储对表的引用即可父级使用已知名称(例如“table”),然后访问如下:

 button.parent().table

关于python - 如何找出一个QPushbutton属于哪个QTableWidget?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24257178/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com