我需要一个简单的例子:如何连接selectRow事件(如果pyside存在此事件)并调用相应的处理程序。对于如果您使用的是QTableView中例如我需要帮助连接pyside qtableview中的事件。 (PySide新手)
self.table_view.selectedRow.connect(lambda: self.handler(param))
我需要一个简单的例子:如何连接selectRow事件(如果pyside存在此事件)并调用相应的处理程序。对于如果您使用的是QTableView中例如我需要帮助连接pyside qtableview中的事件。 (PySide新手)
self.table_view.selectedRow.connect(lambda: self.handler(param))
,你需要连接到其selectionModel的selectionChanged信号。然后,您可以使用选择模型的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_())
哦,谢谢你!这个例子很像水! – user1936566
@ user1936566看到这个链接:http://stackoverflow.com/help/someone-answers。 Upvotes/Accept在这里比'谢谢你'更重要。如所述的 – neuronet
@ user1936566;该问题应该标记为解决http://meta.stackexchange.com/a/5235/231583否则其他人(可能)认为它仍然是开放/未解决,可能会试图发布更多的答案。 –
你能张贴建议,工作代码?我的意思是一个包含一些数据和你想做什么的'TableView'的最小例子。 –