17

我试图在 2 个数字(喜欢和不喜欢)之间做出一个比率。

结果是一个百分比数字。然后我想让标签的宽度等于那个百分比。

所以如果有100个喜欢和1个不喜欢。我想让不喜欢的标签占喜欢栏宽度的 1%。所以基本上就像 youtube 评级系统一样。

示例图片: 在此处输入图像描述

但我没有看到任何设置标签宽度的功能。那么我该怎么做呢,有人有建议吗?

4

4 回答 4

30

QLabel::setFixedWidth(int). 虽然为了让它更灵活(不必担心布局会改变东西),但我会子类QWidget化,为两个数字添加插槽,然后重新实现paintEvent(..)以绘制两个部分。

于 2012-10-11T14:06:04.390 回答
1

我使用 setGeometry() 方法动态设置 QLabel 宽度。我在表单 Ui 中有 qlabel。

ui->qlabel->setGeometry(x, y, width, height);
于 2017-07-16T16:12:15.853 回答
1

嗯,我只是使用 resize() 方法。例如我的小部件,从 QLabel 实现:

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

我不需要改变高度,所以它使用自己的高度,但是由于父母的宽度(),宽度应该改变。

于 2016-08-12T08:01:14.327 回答
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

于 2012-10-11T14:11:37.303 回答