QML TextView更改滚动条样式?

时间:2016-04-11 19:09:57

标签: qt qml scrollview

我有一个QML TextArea我想要更宽的滚动条。 TextArea继承自ScrollViewstyle类中唯一的TextArea成员似乎是inherited from ScrollView,所以我想我可以分配ScrollViewStyle 1}}到TextView' style成员。

然而,将this suggested ScrollViewStyle example分配给我的TextArea style成员会触发错误消息并使屏幕奇怪地闪烁。

以下是错误消息:

 file:///<qtpath>/Qt/5.5.1/5.5/gcc_64/qml/QtQuick/Controls/TextArea.qml:766:32: Unable to assign [undefined] to QColor
 file:///<qtpath>/Qt/5.5.1/5.5/gcc_64/qml/QtQuick/Controls/TextArea.qml:765:29: Unable to assign [undefined] to QColor
 file:///<qtpath>/Qt/5.5.1/5.5/gcc_64/qml/QtQuick/Controls/TextArea.qml:764:20: Unable to assign [undefined] to QColor
 file:///<qtpath>/Qt/5.5.1/5.5/gcc_64/qml/QtQuick/Controls/TextArea.qml:763:19: Unable to assign [undefined] to QFont
 file:///<qtpath>/Qt/5.5.1/5.5/gcc_64/qml/QtQuick/Controls/TextArea.qml:762:25: Unable to assign [undefined] to int
 file:///<qtpath>/Qt/5.5.1/5.5/gcc_64/qml/QtQuick/Controls/TextArea.qml:725:24: Unable to assign [undefined] to QColor

发生了什么?如何正确地为ScrollViewStyle分配TextArea(假设这确实是问题)? (例如,我能否以某种方式明确界定style作业的范围?ScrollView.style: ScrollViewStyle { ...会给出错误&#34; Non-existent attached object。&#34;)或者,有没有更简单的方法可以让滚动条更宽而不会陷入这种混乱?

我在Debian 7 Wheezy上使用64位Qt 5.5.1。

1 个答案:

答案 0 :(得分:2)

ScrollViewStyle不应该分配给非styleScrollView成员,即使它继承自ScrollView 。 QML组件继承层次结构由样式继承层次结构镜像,因此(正如评论中BaCaRoZzo所指出的)style的{​​{1}}成员实际上是{{} 1}} - 继承自TextArea

因此解决方案只是定义TextAreaStyle,但只设置与ScrollViewStyle相关的属性。在链接示例中将单词TextAreaStyle更改为ScrollViewStyle就足以实现此目的。