繁体   English   中英

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

[英]How to set indention to QImage in QLabel?

我有一个QImage并希望在Qlabel上设置它。 为此,我使用的是QPixmap 像这样的东西

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

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

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

它工作正常。

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

您可能正在寻找setMargin(int) 属性 :执行:

mLabel->setMargin(42);

应该解决你的问题。

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

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

在你需要设置页边距上述QLabel大小的一半的情况下,你需要计算保证金做下一个:

width_of_label - desiredmargin + width_of_image;

接下来是在320宽度QLabel和20像素宽度图像的示例中(使用220作为期望的边距 ):

320 - 220 - 20 = 80;

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

mLabel->setMargin(80);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM