2011-12-11 34 views
1

我是Qt的新手,現在我在玩trolltech tutorial在QLCDNumber上設置厚度

我管理自定義QLCDNumber 顏色使用setPalette方法背景,但我似乎無法改變厚度。我明白沒有信,所以setFont方法不能用,所以我試了setBrush,但還是沒有進展。

是否可以設置厚度?如果沒有,請幫我理解爲什麼。


編輯

爲@webclectic指出,有必要重新實現paintEvent。但它叫drawString,其中調用drawDigit其中調用drawSegment這是在QLCDNumberPrivate類(??)see source。我不知道如何重新實現它,因爲沒有方法是虛擬的,我必須重寫它們,我是對的嗎?除了完全改寫這個類以外,還有其他的方法嗎?

+1

您可以做的最好的做法是複製所有類,重命名它並添加所需的功能。 QLcdNumber是Qt中最古老的部分之一,所以它缺少許多新類的便利功能。 – pnezis

回答

2

我不認爲你可以實現你想要的,因爲LCD數字的寬度是硬編碼(檢查這thread)。

一種解決方案是子類QLcdNumber和重新實現paintEvent其中將指定所希望的寬度。