我有一个QImage
并希望将其设置为Qlabel
。
为此我使用QPixmap
。像这样的东西
QPixmap pixmap(QPixmap::fromImage(my_qimage));
mLabel->setIndent(42);
mLabel->setPixmap(pixmap);
这里我想在42像素的缩进后设置图像。但它不适用于Pixmap。 虽然我尝试过像这样的文字
mLabel->setIndent(42);
mLabel->setText("image");
它工作正常。
所以我的问题是如何在QLabel
上的某些像素缩进后设置图像?
任何帮助将不胜感激。如果有其他方法可以实现此类行为,请建议。
答案 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);