2016-04-11 7 views
2

Ich habe eine QML TextArea, für die ich eine breitere Bildlaufleiste möchte. TextArea erbt von ScrollView, und es scheint, dass das einzige style Mitglied in der TextArea Klasse inherited from ScrollView ist, so dass ich dachte, ich könnte nur ein ScrollViewStyle auf die TextView ‚s style Mitglied zuweisen.QML TextView ändern Bildlaufleiste Stil?

Die Zuordnung this suggested ScrollViewStyle example zu meinem Member style löst jedoch Fehlermeldungen aus und lässt den Bildschirm merkwürdig flackern.

Hier sind die Fehlermeldungen:

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 

Was ist los? Wie ordne ich dem TextArea einen ScrollViewStyle richtig zu (vorausgesetzt, das ist tatsächlich das Problem)? (Z. B. kann ich die style Zuordnung irgendwie explizit? ScrollView.style: ScrollViewStyle { ... gibt den Fehler "Non-existent attached object.") Alternativ gibt es eine einfachere Möglichkeit, nur die Bildlaufleiste breiter machen, ohne in diese ganze Unordnung zu bekommen?

Ich benutze 64-Bit-Qt 5.5.1 auf Debian 7 Wheezy.

+0

Auch 'TextAreaStyle' Erbt von' ScrollViewStyle', was bedeutet, dass ersteres mindestens alle Eigenschaften des letzteren hat: Sie können einfach den Stil 'Item' von diesem Link in' TextAreaStyle' umbenennen und das war's, es sollte funktionieren aus der Box. Dem übergeordneten Stil fehlen wahrscheinlich einige Eigenschaften (die "undefinierten" Warnungen). – BaCaRoZzo

+0

@BaCaRoZzo Ah! Vielen Dank. Das funktioniert perfekt, ohne dass zusätzliche Eigenschaften definiert werden müssen. –

Antwort

2

ScrollViewStyle sollte nicht auf das style Mitglied einer nicht ScrollView Klasse zugeordnet werden, auch wenn es von ScrollView erbt. Die Vererbungshierarchie der QML-Komponente ist gespiegelt durch die Stil Vererbungshierarchie, so ist (style Mitglied style Mitglied einer TextArea ist eigentlich eine TextAreaStyle - die erbt von ScrollViewStyle.

Also die Lösung ist einfach eine TextAreaStyle zu definieren, aber nur die Eigenschaften für die ScrollViewStyle relevant. Das Ändern des Worts ScrollViewStyle zu TextAreaStyle in dem verknüpften Beispiel ist ausreichend um das zu erreichen.