我有一个QTableWidget.我已经设置了它的选择行为
myTableWidget.setSelectionBehaviour(QTableWidget.SelectRows)
现在我可以通过单击表格的单元格来选择行.但我希望只能通过单击垂直标题标签来选择行.我怎么能做到这一点?
最佳答案 类Qt.ItemFlag
此枚举描述了项目的属性.请注意,需要为可检查项目提供一组合适的标志和初始状态,指示是否检查该项目.这是为模型/视图组件自动处理的,但需要为QTableWidgetItem的实例显式设置.
在这种情况下我将使用(对于所有项目设置标志):
Qt::ItemIsSelectable – It can be selected.
self.dlg.tableWidget.setRowCount(3)
self.dlg.tableWidget.setColumnCount(4)
self.dlg.tableWidget.horizontalHeader().sectionPressed.disconnect() # disconnect horizontal header
data = [[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]]
for row in range(3): # add items from array to QTableWidget
for column in range(4):
item = QTableWidgetItem(str(data[row][column])) # each item is a QTableWidgetItem
item.setFlags(Qt.ItemIsSelectable) # set flag to the item
self.dlg.tableWidget.setItem(row, column, item)
注意:只要单击verticalHeader,就会选择该行