2012-02-10 92 views
3

我將QLabel繼承並將其插入到QVBoxLayout中,並且遇到大小問題。下面的截圖是我的應用程序目前的樣子:縮放QLabel以容納包含的文本,而不是更多

enter image description here

頂部的黃色插件是我QLabel,並且佈局是默認的。我希望我的標籤縮小以適應文字,而不用手動將其設置爲setMinimumHeight(),但是,這不會允許我使用比標籤寬度更長的字符串。我檢查了QString(這是我傳遞給標籤的構造函數)的文檔,我無法找到提取文本大小的方法。有沒有什麼辦法可以動態改變我的標籤的大小以適應文本,沒有多餘的空間?

回答

7

是的,你可以通過QLabelQFontMetrics找到文本的寬度。例如:

QLabel *label = new QLabel("Text"); 
int w = label->fontMetrics().width(label->text()); 
qDebug() << Q_FUNC_INFO << w; 
//in my case this results in 24px, so 6px per character.