python tableview 列宽_QTableView设置列宽

论坛 期权论坛 脚本     
匿名技术用户   2021-1-10 23:19   38346   0

环境: python 2.7.6, pyqt 4.8.6

想要的效果

默认是均匀分布的列宽。

代码顺序:

1、定义QTableview实例tableview

2、定义QAbstractTableModel实例table_model

3、将tablemodel赋值给tableview

4、定义QHeaderView实例head

5、把head赋值给tableview

6、设置列宽

假设赋值head在赋值table_model之前,则要把table_model赋值给head。

#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行。则标题也会被反色显示。

并且列宽默认是这个样子。

正确的是:

重写QItemDelegate中的sizeHint。不能改动列宽。

并且,也不工作。

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP