在不使用布局的情况下在QT中调整窗口小部件

时间:2016-07-11 13:38:22

标签: c++ qt user-interface

我在QT设计器的C ++中使用Qt 5.7。在中央小部件中,我有两个标签符合图片。一张图片很大(标签),第二张较小,较小( label_2 )位于较大的图片前面。当我调整 MainWindow 的大小时,图片不会调整其大小。我试图使用布局来调整它们,但我的问题是较小的图片必须覆盖较大的图片(地图和地图位置)。当我使用布局时,图片总是放在不同的地方。如何强制标签中的图片(标签,label_2 )根据主窗口调整其大小而不使用布局?

enter image description here

1 个答案:

答案 0 :(得分:1)

您可以处理主窗口的调整大小事件并相应地设置标签几何。

在这种情况下,我建议重新实现设计器创建的小部件实现中的resizeEvent(QResizeEvent *event),以处理调整大小事件。

示例:

void MainWindow::resizeEvent(QResizeEvent *event)
{
   QMainWindow::resizeEvent(event);
   int x1, y1, w1, h1;
   int x2, y2, w2, h2;
   // compute the labels geometry
   // you can get the old and the new window size
   // calling event->oldSize() and event->size()
   //....
   label->setGeometry(x1, y2, w1, h1);
   label_2->setGeometry(x2, y2, w2, h2);
}

请参阅QWidget::resizeEvent()