首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QTableWidget使用父可用大小

QTableWidget使用父可用大小
EN

Stack Overflow用户
提问于 2019-11-21 23:54:09
回答 1查看 175关注 0票数 0

我添加了一个QTableWidget。我尝试了不同的方法将其添加到布局中,但QTableWidget始终保持其默认大小。当然,我可以设置“最小宽度”,但tI期望QTableWidget将使用整个可用空间,就像所有其他小部件一样。

代码语言:javascript
复制
this->horizontalHeader()->hide();
    this->verticalHeader()->hide();
    this->setRowCount(m_numRows);
    this->setColumnCount(m_numCols);
    this->horizontalHeader()->setStretchLastSection(true);
    this->verticalHeader()->setDefaultSectionSize(12);
    this->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);

我也试过了

代码语言:javascript
复制
 this->setSizePolicy(QSizePolicy::Maximum,QSizePolicy::Maximum);

在QTableWidget中使用整个可用空间的秘诀是什么?

EN

回答 1

Stack Overflow用户

发布于 2019-11-22 01:01:23

大多数情况下,您会将小部件添加到QLayout实例中,作为小部件与其父小部件之间的中介,以自动处理小部件相对于其父小部件的定位和大小调整。例如,下面展示了如何在QTableWidget中实现这一点。

代码语言:javascript
复制
#include <QtGui/QApplication>
#include <QtGui/QHBoxLayout>
#include <QtGui/QMainWindow>
#include <QtGui/QTableWidget>

int main(int argc, char** argv)
{
  QApplication app(argc, argv);

  QMainWindow mainWindow;
  mainWindow.setCentralWidget(new QWidget);

  QHBoxLayout layout;
  layout.addWidget(new QTableWidget(mainWindow.centralWidget()));

  mainWindow.centralWidget()->setLayout(&layout);
  mainWindow.show();

  return app.exec();
}

这个例子有点做作。主窗口的特殊之处在于,您可以将QTableWidget实例设置为中心小部件,并且可以由QMainWindow自动很好地对其进行布局。

为了演示QLayout的功能,创建了一个单独的中央小部件,并将表小部件添加到中心小部件上的布局集中。如果您不想在中央小部件上设置布局(注释掉setLayout(...)调用),您可能会得到与已有类似的行为。

最后,当然也可以用QVBoxLayout代替QHBoxLayout来达到同样的效果。只有当您将多个小部件添加到同一布局中时,选择哪个QLayout实现才会开始变得重要。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58978888

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档