2016-04-11 9 views
2

私はQML TextAreaを持っています。そのためには、より広いスクロールバーが必要です。 TextAreaScrollViewから継承されており、TextAreaクラスの唯一のstyleメンバーはinherited from ScrollViewだから、私はScrollViewStyleTextViewstyleメンバーに割り当てることができると思った。QML TextViewはスクロールバーのスタイルを変更しますか?

ただし、this suggested ScrollViewStyle exampleTextAreastyleメンバーに割り当てると、エラーメッセージが表示され、画面が奇妙にちらつきます。ここで

はエラーメッセージです:

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 

何が起こっていますか? をTextAreaに正しく割り当てるにはどうすればよいですか(これは実際問題です)。たとえば、styleの割り当てを明示的にスコープ設定することはできますか?ScrollView.style: ScrollViewStyle { ...はエラー "Non-existent attached object"と表示されます)または、スクロールバーを広げてにするより簡単な方法がありますか?

私はDebian 7 Wheezyで64ビットQt 5.5.1を使用しています。

+0

また、 'TextAreaStyle'は' ScrollViewStyle'から継承しています。これは、後者の少なくともすべてのプロパティを持っていることを意味します: 'Item'スタイルの名前を' TextAreaStyle'に変更するだけです。箱から出してください。親のスタイルにはおそらくいくつかのプロパティ( 'undefined'警告)がありません。 – BaCaRoZzo

+0

@BaCaRoZzoああ!ありがとうございました。これは完璧に機能し、追加のプロパティを定義する必要はありません。 –

答えて

2

ScrollViewStyleは、ScrollViewから継承する場合であっても非ScrollViewクラスのメンバーstyleに割り当てされるべきではありません。 QMLコンポーネント継承階層は、スタイル継承階層によってミラーリングされるので、(コメントでBaCaRoZzoによって指摘されるように)TextAreastyleメンバーが実際ScrollViewStyleから継承--which TextAreaStyleあります。

解決策は単にTextAreaStyleを定義することですが、ScrollViewStyleに関連するプロパティのみを設定するだけです。リンクされた例でScrollViewStyleという単語をTextAreaStyleに変更するだけで十分です。

関連する問題