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