gpt4 book ai didi

python - pyside qtableview 中的连接事件

转载 作者:行者123 更新时间:2023-11-30 23:29:08 25 4
gpt4 key购买 nike

我需要一个简单的示例:如何连接selectRow事件(如果pyside中存在此事件)并调用相应的处理程序。例如

self.table_view.selectedRow.connect(lambda: self.handler(param))

最佳答案

如果您使用的是 QTableView,则需要连接到 selectionChanged其信号selectionModel 。然后您可以使用 selectedRows选择模型的方法来获取选定的行(其中“选定行”表示整行被选中)。

这是一个简单的演示:

from PySide import QtGui, QtCore

class Window(QtGui.QWidget):
def __init__(self, rows, columns):
QtGui.QWidget.__init__(self)
self.table = QtGui.QTableView(self)
model = QtGui.QStandardItemModel(rows, columns, self.table)
for row in range(rows):
for column in range(columns):
item = QtGui.QStandardItem('(%d, %d)' % (row, column))
item.setTextAlignment(QtCore.Qt.AlignCenter)
model.setItem(row, column, item)
self.table.setModel(model)
selection = self.table.selectionModel()
selection.selectionChanged.connect(self.handleSelectionChanged)
layout = QtGui.QVBoxLayout(self)
layout.addWidget(self.table)

def handleSelectionChanged(self, selected, deselected):
for index in self.table.selectionModel().selectedRows():
print('Row %d is selected' % index.row())

if __name__ == '__main__':

import sys
app = QtGui.QApplication(sys.argv)
window = Window(5, 5)
window.show()
window.setGeometry(600, 300, 600, 250)
sys.exit(app.exec_())

关于python - pyside qtableview 中的连接事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21266564/

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