Qt QTableWidget 設定列寬行高大小的幾種方式及其他常用屬性設定

一杯清酒邀明月發表於2024-03-18

效果:

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);

相關文章