Qt:: 如何消除 qmainwindow 中小部件和工具栏之间的间隙

Posted

技术标签:

【中文标题】Qt:: 如何消除 qmainwindow 中小部件和工具栏之间的间隙【英文标题】:Qt:: how to get rid of the gap between widget and toolbar in a qmainwindow 【发布时间】:2013-03-06 14:45:51 【问题描述】:

基本上我在主窗口中有一个 QLabel*。 我试图将它设置为centralWidget。当程序运行时,如果 mainWindow 保持原来的大小就可以了。但是,如果我放大尺寸,QLabel 和工具栏之间突然出现了不知从何而来的间隙!!!!我该怎么做才能摆脱它!!!

有趣的是,虽然创建了间隙,但 QLabel 的 x 和 y 坐标并没有改变!!!!怎么会这样!!!!

.................................................. .........................

我使用 QTCreator 制作了一个 ScrollArea 作为 centralWidget。这样,当我放大 QMainWindow 时,ScrollArea 会自动放大。然而,问题是。当我尝试调用 setWidget 函数将 Label 设置到 ScrollArea 中时,再次出现上述同样的问题!!!!

有人,请帮忙!!!!!!!!!!!!!

这是我尝试过的,但显然不起作用:

代码是:

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)

    ui->setupUi(this);
    imageLabel = new QLabel();
    image = new QPixmap(480,320);
    image->fill();
    imageLabel->setPixmap(*image);
    setCentralWidget(imageLabel);

【问题讨论】:

邮政编码,以便我们了解您为什么会出现这种行为。父层次结构或布局可能有问题。 这将有助于查看用户界面。那里可能有你的标签应该是子级的布局或小部件。 【参考方案1】:

对我来说,这看起来像是一个布局问题,您已经设置了标签的大小,一旦您调整窗口大小,它就会保持已经设置的大小,除非您再次专门设置它的大小,或者您正在使用其中之一QLayout 布局管理器。

【讨论】:

重点是,我不需要调整标签的大小,但我需要它保持在原来的位置

以上是关于Qt:: 如何消除 qmainwindow 中小部件和工具栏之间的间隙的主要内容,如果未能解决你的问题,请参考以下文章

QT学习之QMainWindow详解

Qt关闭QMainWindow后如何防止崩溃?

Qt 中 QMainWindow 上的另一个窗口

检索 Qt 中打开的 QMainWindows 的数量

Qt - 即使 QMainWindow 太小也允许停靠

如何在我的 Qt 窗口中创建一个“洞”?