无法在运行时设置QLabel的宽度

时间:2014-02-07 22:25:16

标签: c++ qt

我这样做

ui.label->geometry().setWidth(12);

然而,我得到的错误是

Error   1   error C2662: 'QRect::setWidth' : cannot convert 'this' pointer from 'const QRect' to 'QRect &'  

有关如何解决此问题的任何建议?

2 个答案:

答案 0 :(得分:1)

Geometry返回一个const QRect引用,因此你需要像这样使用它:

QRect r = ui.label->geometry();
r.setWidth(12);
ui.label->setGeometry(r);

或者您可以使用调整大小:

ui.label->resize(12, ui.label->height());

但是你也可以告诉我们你想要完成什么,也许我们可以找到一个解决方案,将QLabel放到一个布局中,你不需要手动调整它。

答案 1 :(得分:0)

geometry()返回对QRect的const引用,因此它只能用作只读信息。

不是很漂亮的方式,但您可以尝试使用与参数相同的期望值调用setMinimumWidth()setMaximumWidth()函数。

实际上,尽管标签的内容非常可疑,但仍然需要调整标签大小。