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可设置自定义背景色

 

 

posted on 2022-10-28 16:54  斗战胜佛美猴王  阅读(17588)  评论(0编辑  收藏  举报