2010-02-12 85 views
2

我正在使用帶有自定義字體的spinbox,該字體在spinbox中看起來太高。如何將文字移動到較低位置?Qt ::如何降低QSpinBox中的文本

我已經重新實現了QStyle並在另一個窗口小部件中使字體更低,但是我找不到在哪裏用spinbox做它。必須有一個QRect的地方,你可以移動它的頂部,但我不知道,似乎無法找到它的位置。

回答

2

Qt指定一個QStyle::SC_SpinBoxEditField,這似乎是你想要修改的。如果我從幾年前正確地記得我正在做風格的東西時,你應該能夠勾選獲得該子控件的選項,這將包括它應該繪製的矩形。修改它可能會得到你想要的結果。如果沒有,這是一個開始尋找答案的地方。

+0

謝謝,不幸的是,這是文本和背景的區域,仍然找不到隔離文本的任何東西。 – Ayeayeron

0

這更多的是一種猜測超過了肯定的回答,但你也許可以用樣式表來做到這一點:

spinbox->setStyleSheet("QSpinBox { bottom: -2px;}"); 

理想情況下,將是剛剛的文本子控件類的東西,但stylesheet documentation沒有按沒有列出,這可能意味着上述情況會帶來不良後果。

+0

謝謝,但我需要通過重新實現qstyle來實現,而不是使用樣式表,它們佔用太多閃存空間,這是針對嵌入式應用程序 – Ayeayeron

+0

,您不需要樣式表文件......爲什麼它們會佔用太多的空間? – smerlin

+0

@smerlin:據推測,解釋樣式表(Qt內部)的代碼需要太多的空間,所以它沒有被編譯進去。我很確定Qt在構建它時允許這個選項作爲標誌。 –

0

你可以這樣做:

spinBox->setAlignment(Qt::AlignCenter);//Or the Align Flag that you want 

我希望這幫助。