设置QLabel的宽度

18

我正在尝试计算两个数字(喜欢和不喜欢)之间的比例。

结果是一个百分数。然后,我想使标签的宽度等于这个百分比。

因此,如果有100个喜欢和1个不喜欢,我希望使不喜欢的标签宽度等于喜欢条的1%。基本上像YouTube评级系统一样。

示例图像: enter image description here

但我没有看到设置标签宽度的函数。 那么我该怎么做呢?有什么建议吗?

4个回答

33

QLabel::setFixedWidth(int)。但为了使其更灵活(不需要担心布局会改变),我会子类化QWidget,为这两个数字添加插槽,并重新实现paintEvent(..)以绘制这两个部分。


4
使用带有paintEvent()的自定义QWidget是解决问题的最佳方法。 - Stefan Majewsky

1
我使用了setGeometry()方法动态设置QLabel的宽度。我在Form Ui中有一个QLabel。
ui->qlabel->setGeometry(x, y, width, height);

1

嗯,我只是使用resize()方法。

例如,我的小部件是从QLabel实现的:

BenchItem *itm=static_cast<BenchItem*>(widget); itm->resize(this->width(),itm->height());

我不需要改变高度,所以它使用自身的高度,但是由于父元素的宽度,宽度应该改变。


0

查看QT文档,该元素只能包含

"纯文本、富文本、像素图、电影、数字或无"

其中最有前途的是"像素图",但似乎没有您需要的图像处理功能,而更多地是关于显示图像:

http://qt-project.org/doc/qt-4.8/qpixmap.html

相反地,我建议您寻找更轻量级的解决方案来解决您的条形图问题,例如CSS。以下是使用两个div元素实现此目的的方法:

http://www.1080degrees.net/archive/journal/simple_css_bar_graph/

如果您希望最终显示图像,并且启用了GD库,请看这里:

http://php.net/manual/en/function.imagecreate.php


第一个链接似乎已经失效了,第二个链接指向一个 PHP 函数? - Vinc
好吧,我发帖时还没有过去16个月! - J Griffiths
是的,这就是为什么我发表评论的原因,希望你能详细说明链接中现在出了什么问题。 - Vinc

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接