QTableWidget设置列宽行高大小的几种方式及其他常用属性设置
1.设置列宽行高
- 列宽、行高自动分配
//列宽自动分配 tableWidget.horizontalHeader().sectionResizeMode(QHeaderView::Stretch) //行高自动分配 tableWidget.verticalHeader().SectionResizeMode(QHeaderView::Stretch)
- 表格适应内容指定列
tableWidget.resizeColumnToContents(column)
- 手动调整
tableWidget.horizontalHeader().SectionResizeMode(QHeaderView::Interactive)
- 固定值
tableWidget.horizontalHeader().SectionResizeMode(QHeaderView::Fixed)
用户无法调整该部分的大小,该部分只能使用resizeSection()以编程方式调整大小,大小默认为defaultSectionSize。
- 随内容分配列宽
tableWidget.horizontalHeader().SectionResizeMode(QHeaderView::Stretch) tableWidget.horizontalHeader().SectionResizeMode(0, QHeaderView::ResizeToContents)
- 随内容分配行高
tableWidget.verticalHeader().SectionResizeMode(QHeaderView::Stretch) tableWidget.verticalHeader().SectionResizeMode(0, QHeaderView::ResizeToContents)
- 水平方向标签拓展剩下的窗口部分,填满表格
tableWidget.horizontalHeader().setStretchLastSection(true)
- 列宽是自动分配的,但是第一列可手动调整宽度,而表格整体的列宽仍是自动分配的。第二、三列办法调整列宽,自动分配的
tableWidget.horizontalHeader().SectionResizeMode(QHeaderView::Stretch) tableWidget.horizontalHeader().SectionResizeMode(0, QHeaderView::Interactive)
- 自定义列宽
tableWidget.setColumnWidth(0, 40) tableWidget.setColumnWidth(1, 200) tableWidget.setColumnWidth(2, 200)
2.其他属性
- 交替背景色
setAlternatingRowColors(true)
//默认显示行头,如果你觉得不美观的话,我们可以将隐藏 tableview->verticalHeader()->hide(); //设置选中时为整行选中 setSelectionBehavior(QAbstractItemView::SelectRows); //设置表格的单元为只读属性,即不能编辑 setEditTriggers(QAbstractItemView::NoEditTriggers); //显示QTableWidget组件中的线 setShowGrid(true); //去除选中虚线框 setFocusPolicy(Qt::NoFocus); //设置非单元滚动 setHorizontalScrollMode(QAbstractItemView::ScrollPerPixel); //设置非单元滚动 setVerticalScrollMode(QAbstractItemView::ScrollPerPixel); //隔行交替背景色 setAlternatingRowColors(true) //通过stylesheet或者qss可设置自定义背景色