如何获得刚刚添加到布局中的窗口小部件的最终高度,但是由于这个原因,它还没有调整到最终尺寸?
基本上我需要这样做:
myGridLayout->addWidget ( somewidget, 0, 0, 1, 1 );
QPushButton *b = new QPushButton(somewidget);
b->setGeometry( somewidget->width() - 50,
somewidget->height()/2 - 150,
50, 300);
我想要做的是在刚刚添加的小部件的右边缘中间插入一个按钮(50x300),但为此我需要知道小部件的尺寸,我没有正确的因为它没有在布局中调整到完整大小。有什么想法吗?
答案 0 :(得分:2)
通常,在显示之前计算布局的内容。如果您需要提前强制它,可以调用QLayout::activate()
或QLayout::update()
,它会重做或更新其父窗口小部件的布局。
答案 1 :(得分:0)
如果我理解正确的话,这应该完成你想要做的事情,而不是试图在正确的时间捕捉大小。添加一个布局到'somewidget'并添加按钮。
myGridLayout->addWidget(somewidget, 0, 0, 1, 1 );
QGridLayout *layout = new QGridLayout(somewidget);
QPushButton *button = new QPushButton();
button->setText("button");
button->setMaximumSize(50,300);
button->setMinimumSize(50,300);
button->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
layout->addWidget(button, 0, 0, Qt::AlignVCenter | Qt::AlignRight);