效果:
1.列宽、行高自动分配
1 //列宽自动分配 2 tableWidget.horizontalHeader().sectionResizeMode(QHeaderView::Stretch) 3 //行高自动分配 4 tableWidget.verticalHeader().SectionResizeMode(QHeaderView::Stretch)
2.固定值
tableWidget.horizontalHeader().SectionResizeMode(QHeaderView::Fixed)
3.随内容分配列宽 随内容分配行高
1 tableWidget.verticalHeader().SectionResizeMode(QHeaderView::Stretch) 2 tableWidget.verticalHeader().SectionResizeMode(0, QHeaderView::ResizeToContents) 3 4 tableWidget.verticalHeader().SectionResizeMode(QHeaderView::Stretch) 5 tableWidget.verticalHeader().SectionResizeMode(0, QHeaderView::ResizeToContents)
4.水平方向标签拓展剩下的窗口部分,填满表格
tableWidget.horizontalHeader().setStretchLastSection(true)
5.列宽是自动分配的,但是第一列可手动调整宽度,而表格整体的列宽仍是自动分配的。第二、三列办法调整列宽,自动分配的
1 tableWidget.horizontalHeader().SectionResizeMode(QHeaderView::Stretch) 2 tableWidget.horizontalHeader().SectionResizeMode(0, QHeaderView::Interactive)
6.手动 自定义列宽
1 tableWidget->setColumnWidth(0, 200); 2 tableWidget->setColumnWidth(1, 200); 3 tableWidget->setColumnWidth(2, 150); 4 tableWidget->setColumnWidth(3, 120); 5 tableWidget->setColumnWidth(4, 150);
7. 其实也可以设置宽度比例
1 int width = m_Controls.tableWidget->width(); 2 m_Controls.tableWidget->setColumnWidth(0, width/5); 3 m_Controls.tableWidget->setColumnWidth(1, width/5*2); 4 m_Controls.tableWidget->setColumnWidth(2, width/5 ); 5 m_Controls.tableWidget->setColumnWidth(3, width/5);
9.隐藏 默认显示行头
tableWidget->verticalHeader()->setVisible(false)
10.设置选中时为整行选中
tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows);
tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);
12. 显示QTableWidget组件中的线
tableWidget->setShowGrid(true);
13.去除选中虚线框
tableWidget->setFocusPolicy(Qt::NoFocus);
14.设置非单元滚动
1 tableWidget->setHorizontalScrollMode(QAbstractItemView::ScrollPerPixel); 2 3 tableWidget->setVerticalScrollMode(QAbstractItemView::ScrollPerPixel);
15.隔行交替背景色
tableWidget->setAlternatingRowColors(true)
16.QTableWidget类中的常用方法
17.编辑规则的枚举值类型
18.表格选择行为的枚举值
19.单元格文本水平对齐方式
20. 单元格文本垂直对齐方式
如果要设置水平和垂直方向对齐方式,比如在表格空间内上下,左右居中对齐,那么只要使用Qt,AlignHCenter和Qt,AlignVCenter即可
注意:
如数据也需要设置列数,否则可能不显示;
tableWidget->setColumnCount(10);
标签:QHeaderView,Qt,列宽行,SectionResizeMode,setColumnWidth,verticalHeader,tableWidget,设 From: https://www.cnblogs.com/ybqjymy/p/18080167