我添加了一个QTableWidget。我尝试了不同的方法将其添加到布局中,但QTableWidget始终保持其默认大小。当然,我可以设置“最小宽度”,但tI期望QTableWidget将使用整个可用空间,就像所有其他小部件一样。
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);我也试过了
this->setSizePolicy(QSizePolicy::Maximum,QSizePolicy::Maximum);在QTableWidget中使用整个可用空间的秘诀是什么?
发布于 2019-11-22 01:01:23
大多数情况下,您会将小部件添加到QLayout实例中,作为小部件与其父小部件之间的中介,以自动处理小部件相对于其父小部件的定位和大小调整。例如,下面展示了如何在QTableWidget中实现这一点。
#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实现才会开始变得重要。
https://stackoverflow.com/questions/58978888
复制相似问题