天天看點

QTableView設定列寬

環境: python 2.7.6, pyqt 4.8.6

想要的效果

QTableView設定列寬

預設是均勻分布的列寬。

代碼順序:

1、定義QTableview執行個體tableview

2、定義QAbstractTableModel執行個體table_model

3、将tablemodel指派給tableview

4、定義QHeaderView執行個體head

5、把head指派給tableview

6、設定列寬

如果指派head在指派table_model之前,則要把table_model指派給head。

<span style="white-space:pre">	</span>#tableview
        self.table_model = my_model(self.my_array, self)
        #Model賦給表格
        self.ui.tableView.setModel(self.table_model)
        #水準表頭
        head = QtGui.QHeaderView(QtCore.Qt.Horizontal, self)
        #自定義模式,不能拖動
        head.setResizeMode(QtGui.QHeaderView.Custom)
        self.ui.tableView.setHorizontalHeader(head)
        #設定0~3列的寬度
        head.resizeSection(0,30)
        head.resizeSection(1,200)
        head.resizeSection(2,160)
        head.resizeSection(3,70)
           

使用QHeaderView.Custom 模式,隻能通過程式設計來進行修改列寬。

另外,不使用QHeadView,點選第1行,則标題也會被反色顯示。

而且列寬預設是這個樣子。

QTableView設定列寬

正确的是:

QTableView設定列寬

重寫QItemDelegate中的sizeHint,不能修改列寬。

而且,也不工作。