繁体   English   中英

Qt QTableWidget列调整大小

[英]Qt QTableWidget Column resizing

我有一个QToolBar,QWidget QTabWidget一个主窗口 布局是“网格”。 但是,我的窗口可以调整大小,因为我有一个布局,它运行良好。 但是有一个问题,在我的QTabWidget中我有一个带有两列的QTableWidget (布局也是“Grid”)。 如果我调整整个窗口的大小, QTableWidget会调整大小,但不会调整列。

例如,每当我调整窗口大小时,我的QTabWidget也会调整大小, QTableWidget 也会调整大小。 只有我的QTableWidget中的列不会。

那么......如果我的QTableWidget调整大小,我怎么能调整它们的大小呢?

  1. 要拉伸最后一列:

     ui->tableWidget->horizontalHeader()->setStretchLastSection(true); 
  2. 要拉伸列#n

     ui->tableWidget->horizontalHeader()->setSectionResizeMode(n, QHeaderView::Stretch); 
  1. 更改ResizeModeQHeaderView 例如,使用:

horizontalHeader()->setResizeMode( 0, QHeaderView::Stretch );

使第一列调整大小,使QTableWidget始终满。


  1. 在调整QTableWidget大小时,重写resizeEvent并自己设置每列的宽度。
ui->mytable->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);

如果您只想调整最后一列:

ui->tableWidget->horizontalHeader()->setStretchLastSection(1);

对于这个的最佳解决方案,在Qt5中你必须使用setSectionResizeMode而不是setResizeMode

tabv = QTableView()
tabv.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)

在Qt5中,您必须使用setSectionResizeMode而不是setResizeMode

QTableWidget* myTable = new QTableWidet;
QHeaderView* header = myTable->horizontalHeader();
header->setSectionResizeMode(QHeaderView::Stretch);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM