2011-12-11 36 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其中将指定所希望的宽度。