仅通过单击行标题选择QTableWidget行

时间:2016-08-10 11:58:52

标签: python qt pyqt4 qtablewidget

我有一个QTableWidget。我已经用

设置了它的选择行为
myTableWidget.setSelectionBehaviour(QTableWidget.SelectRows)

现在我可以通过单击表格的单元格来选择行。但我希望只能通过单击垂直标题标签来选择行。我怎么能做到这一点?

1 个答案:

答案 0 :(得分:1)

Qt.ItemFlag类

此枚举描述了项目的属性。请注意,需要为可检查项目同时提供一组适当的标志和初始状态,以指示该项目是否已被检查。对于模型/视图组件,这是自动处理的,但需要为QTableWidgetItem的实例进行显式设置。

在这种情况下,我将使用(对于所有设置了项的标记):

  

Qt :: ItemIsSelectable-可以选择。

    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)

enter image description here

注意:仅当您单击verticalHeader时,该行才会被选中