设置Qlabel宽度

时间:2012-10-11 13:56:03

标签: qt label size

我正在努力使两个数字之间的比例(喜欢和不喜欢)。

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

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

示例图片: enter image description here

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

4 个答案:

答案 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库,可以看一下:

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