2016-06-21 235 views
0

我試圖讓QLabel顯示圖像和一些垂直居中顯示該圖像的文本。 我想不出如何做到這一點。 我發現在互聯網上的大多數源建議使用下面的代碼:在QLabel中的圖像附近垂直居中文本

ui->label->setText("<img src='c:/images.jpg' style='vertical-align:middle;'> Hello"); 

但是我得到的是this。 文本的底線居中靠近圖像,但我喜歡的是文本的中間線要居中(如下所示:made in ms paint)。聽起來像一個很常見的任務,但我無法找到任何答案。

我該如何做到這一點?

+0

您是否正在尋找一個樣式表的解決方案或不一定?如果沒有,您可以創建一個'QHBoxLayout'並在其中放置2個'QLabel':一個帶有圖片,一個帶有標題 – IAmInPLS

+0

Stylesheets是首選。是的,我在考慮雙標籤解決方案,它只是看起來不正確 –

回答

0

我試圖在我的QtCreator中運行它,它工作正常。所以,首先,您可以嘗試以下方法:

  1. 檢查圖片大小。在paint.net或類似的東西中打開它。也許最上面的圖像是不可見的空白區域。那些,圖像的實際大小看起來像一個拉長的矩形,其中可見部分在底部。嘗試其他圖像。
  2. 嘗試將格式jpg更改爲png。我用jpg格式顯示圖像時遇到了問題,所以我總是嘗試使用png。
  3. 風格問題。 Qt可能對CSS風格不正確,因爲它不是Qt的一部分。我在Qt 5.4.0版本中測試過。如果您的年齡較大,可能是更新它的時間。
+0

圖像是一個正方形,它位於:http://imgur.com/hHLLDD4。我嘗試了JPG和PNG - 結果相同。不過,我正在使用Qt 5.6。你可以發表一個截圖嗎?也許你使用的字體太小,無法注意到文本是以文本的底線(這是我現在擁有的)還是以它的中心線爲中心(這正是我試圖實現的目標)?嘗試爲標籤設置更大的字體大小? –

+0

@ O.W.Grant - 嗯...是的,如果我增加字體大小的標籤看起來像這樣:http://imgur.com/sxX7tSF。所以,但如果我在jsfiddle中使用這個代碼:jsfiddle.net/nr6Lme5n它的工作原理。我認爲原因是在Qt垂直對齊的標籤不起作用。如果可以找到解決方案,我會嘗試其他變體並寫入。 – steell911