如何在QLabel中设置缩进到QImage?

时间:2017-01-28 10:39:59

标签: c++ qt

我有一个QImage并希望将其设置为Qlabel。 为此我使用QPixmap。像这样的东西

QPixmap pixmap(QPixmap::fromImage(my_qimage));
mLabel->setIndent(42);
mLabel->setPixmap(pixmap);

这里我想在42像素的缩进后设置图像。但它不适用于Pixmap。 虽然我尝试过像这样的文字

mLabel->setIndent(42);
mLabel->setText("image");

它工作正常。

所以我的问题是如何在QLabel上的某些像素缩进后设置图像? 任何帮助将不胜感激。如果有其他方法可以实现此类行为,请建议。

1 个答案:

答案 0 :(得分:2)

您可能正在寻找setMargin(int) property: 这样做的:

mLabel->setMargin(42);

应该解决你的问题。

但是,如果超过一半QLabel宽度的尺寸(此宽度为320 QLabel的示例中为160像素),则QPixmap图像不会显示。在这种情况下,有必要将对齐属性更改为执行下一步:

mLabel->setAlignment(Qt::AlignLeading|Qt::AlignRight|Qt::AlignVCenter);

如果您需要设置保证金超过QLabel大小的一半,您需要计算下一个保证金:

width_of_label - desiredmargin + width_of_image;

在这个320宽QLabel和20像素宽度图像的示例中)接下来是(根据需要使用220 margin ):

320 - 220 - 20 = 80;

因此,在设置上一个对齐后,您应该使用:

mLabel->setMargin(80);