我需要一個簡單的例子:如何連接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'的最小例子。 –