2014-02-07 40 views
1

设置QLabel的宽度我这样做不能在运行时

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

但是我得到的错误是

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

关于如何解决这个有什么建议?

回答

1

几何返回一个const查阅QRect参考,所以你需要使用它是这样的:

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

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

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

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

0

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

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

其实调整的标签,尽管它的内容是非常可疑的操作)