我试图在 2 个数字(喜欢和不喜欢)之间做出一个比率。
结果是一个百分比数字。然后我想让标签的宽度等于那个百分比。
所以如果有100个喜欢和1个不喜欢。我想让不喜欢的标签占喜欢栏宽度的 1%。所以基本上就像 youtube 评级系统一样。
示例图片:
但我没有看到任何设置标签宽度的功能。那么我该怎么做呢,有人有建议吗?
QLabel::setFixedWidth(int)
. 虽然为了让它更灵活(不必担心布局会改变东西),但我会子类QWidget
化,为两个数字添加插槽,然后重新实现paintEvent(..)
以绘制两个部分。
我使用 setGeometry() 方法动态设置 QLabel 宽度。我在表单 Ui 中有 qlabel。
ui->qlabel->setGeometry(x, y, width, height);
嗯,我只是使用 resize() 方法。例如我的小部件,从 QLabel 实现:
BenchItem *itm=static_cast<BenchItem*>(widget);
itm->resize(this->width(),itm->height());
我不需要改变高度,所以它使用自己的高度,但是由于父母的宽度(),宽度应该改变。
查看QT文档,这个元素只能包含
“纯文本、富文本、像素图、电影、数字或无”
其中最有前途的“像素图”似乎没有您需要的图像处理功能,而是更多地显示图像:
http://qt-project.org/doc/qt-4.8/qpixmap.html
相反,我建议为您的条形图问题寻找更轻量级的解决方案,例如 CSS。这是使用两个 div 元素执行此操作的方法:
http://www.1080degrees.net/archive/journal/simple_css_bar_graph/
如果您毕竟更喜欢显示图像,并且启用了 GD 库,不妨看看这里: