我是Qt的新手,现在我正在玩trolltech tutorial。
我设法使用setPalette
方法自定义QLCDNumber 颜色和背景,但我似乎无法更改厚度。我知道没有字母,因此无法使用setFont
方法,所以我尝试了setBrush
,但仍然没有进展。
是否有可能以某种方式设定厚度?如果没有,请帮助我理解原因。
修改
正如@webclectic指出的那样,有必要重新实现paintEvent
。但它会调用drawString
,调用drawDigit
,调用drawSegment
类(??)see source中的QLCDNumberPrivate
。我不知道如何重新实现它:因为没有方法是虚拟的,我必须重写它们,我是对的吗?除了完全改写课程之外还有其他方法吗?
答案 0 :(得分:2)
我不认为你能达到你想要的效果,因为LCD编号的宽度是硬编码的(请查看thread)。
一种解决方案是继承QLcdNumber
并重新实现paintEvent
,您将在其中指定所需的宽度。