gpt4 book ai didi

python - 如何选择包含按钮的 QTableWidget 单元格

转载 作者:行者123 更新时间:2023-11-28 21:48:21 36 4
gpt4 key购买 nike

我有一个关于 PyQt4 上的 QTableWidget 的问题。假设我有一个 QTableWidget,我想使用以下方法将事件连接到单元格点击:

table.cellClicked.connect(cellClick)

然后,cellClick 函数执行其工作。问题是:有些单元格包含一个按钮,就像这样(例如坐标 0,0):

button = QtGui.QPushButton()
table.setCellWidget(0,0, button)

现在我的问题来了。单元格中存在按钮(占据整个单元格空间)会完全禁用 cellClicked - 单元格不会被点击, Action 无法被检测到。但我确实希望我的按钮填充单元格。

所以,简而言之,我的问题是 - 当 QTableWidget 单元格中有一个按钮时,我如何选择(单击)它?

最佳答案

简单的答案似乎是:

    button.clicked.connect(cellClick)

但是你怎么知道被点击的单元格的行/列呢?所以下一次迭代可能是:

    button = QPushButton()
table.setCellWidget(row, column, button)
button.clicked.connect(
lambda *args, row=row, column=column: cellClick(row, column))

如果表格是静态的,这没关系。但是,如果可以重新排列行和列呢?在这种情况下,缓存在按钮的 clicked 处理程序中的行/列可能会失效。所以下一次迭代可能是:

   index = QtCore.QPersistentModelIndex(table.model().index(row, column))
button.clicked.connect(
lambda *args, index=index: cellClick(index.row(), index.column()))

(注意:您可以将其他插槽连接到按钮的 clicked 信号,但它们的调用顺序未定义)

关于python - 如何选择包含按钮的 QTableWidget 单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35493642/

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