【发布时间】:2018-06-26 05:43:32
【问题描述】:
如何将侦听器附加到 PyQT 的 TableView 的全选按钮?
PyQT TableView 示例
我尝试过使用下面的方法,只有在选择单元格时才会触发。
table.clicked.connect()
我还尝试向两个标题添加侦听器,只有在选择列或行时才会触发
table.horizontalHeader().sectionClicked.connect()
table.verticalHeader().sectionClicked.connect()
它们都在按预期工作,但是我想将侦听器添加到左上角的按钮,即全选按钮。我似乎无法从 Qt 的文档中找到提到按钮的这个特定部分。
代码:
# Imported from Qt Designer created dialog
dialog = x.UI_Dialog()
table = dialog.tableSchedule
table.setModel(___) # I used my custom model that inherits from QtCore.QAbstractTableModel
table.clicked.connect(lambda: print('cell'))
table.horizontalHeader().sectionClicked.connect(lambda: print('col'))
table.verticalHeader().sectionClicked.connect(lambda: print('row'))
回答(@eyllanesc): 获取 QTableView 的角按钮并为其添加监听器。
corner = table.findChild(QAbstractButton)
corner.clicked.connect(___)
通过获取 QTableView 的子项进一步检查,这些是组件:
- 3 QWidget
- QStyledItemDelegate
- 2 QHeaderView
- QAbstractButton
- QItemSelectionModel
【问题讨论】:
-
显示你的代码。
-
我添加了我的代码,无论如何,我认为代码与问题无关,除了清除表变量是 QtWidgets.QTableView 的实例
标签: python pyqt pyqt4 pyqt5 qtableview