2014-02-07 74 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()函數具有與參數相同的期望值。

其實調整的標籤,儘管它的內容是非常可疑的操作)