我在我的Qlabel上显示图像。现在它在窗口顶部和QLabel(图像)顶部之间有一个间隙,如下所示:
我不希望这个差距,我的UI当前UI是这样的:
其中label_image
是包含图像的QLabel的对象名称。
我的构造函数代码:
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
this->setFixedSize(700,700);
ui->setupUi(this);
ui->centralWidget->layout()->setMargin(0);
ui->centralWidget->layout()->setSpacing(0);
}
void MainWindow :: paintEvent(QPaintEvent * e)
{
QMainWindow::paintEvent(e);
if(1)
{
QImage image("/Users/arqam/Desktop/ImageToCartoon/input/ElonMusk.jpeg");
//some redundant code
ui->label_image->setPixmap(QPixmap::fromImage(image));
}
}
如图所示,使用centralWidget
中的更改,我能够从左侧开始拍摄图像,但无法从顶部开始拍摄图像。
编辑:我需要的是我的图像从top left
开始,左边部分完成,只剩下顶部。
我的用户界面的XML部分:https://pastebin.com/thxhc2Mj
在你的情况下,出现在顶部使用setAlignment()
ui->label_image->setAlignment(Qt::AlignTop);
基于注释和xml文件,我认为在添加QBoxLayout::addStretch()后立即调用label_image
就足够了。这将在标签和水平布局之间插入QSpacerItem,这将使图像保持在顶部,其余按钮位于底部,即使您调整小部件的大小。