[Interest] Export color schema via a QML import
Bo Thorsen
bthorsen at ics.com
Mon Feb 24 10:47:30 CET 2014
Hi Kim,
Den 21-02-2014 17:00, kim kulling skrev:
> Hi ML,
>
> I have the following situation:
> I have my own plugin based on QML with specific c++-types and my own
> qml-types defined in separate qml-files. This works fine.
>
> Now I also want to support 2 different color schemas in this plugin like:
>
> Myplugin/
> +-Styles+-Style1/Colors.qml
> ...............Style1/Styles.qml
> ...............Style1/qmldir
> ...............Style2/Colors.qml
> ...............Style2/Styles.qml
> ...............Style2/qmldir
>
> In the file Style I only export the color schema as a property:
>
> Style.qml:
> importQtQuick2.0
>
>
> Item {
>
> id: styles
>
> property alias colors: colors
>
>
> Colors {
>
> id: colors
>
> }
>
> }
>
>
> the qmldir for style1 looks like:
>
>
> module Myplugin.Styles.Style1
> typeinfo plugins.qmltypes
> Styles 1.0 Styles.qml
>
>
> Same for Style2 with changed numers for the styles.
>
>
> Now I am trying to assecc the colors via:
>
>
> importMyplugin.Styles.Style1 as Style1
>
>
> Rectangle {
>
> color:Style1.styles.colors
>
> }
>
>
> And I am getting the following error message:
>
>
> Unable to assign [undefined] to QColor
>
>
> I am not sure if this is the right way to go or what I'm currently doing wrong. Any ideas?
I can't tell you exactly what's going on here, but I can give you a
couple of pointers on what I would do.
1) Check if you can access an int in the styles item from your
rectangle. Something like this would work:
Item {
id: styles
property int foo: 1
}
Rectangle {
color: Style1.styles.foo == 1 ? "yellow" : "red"
}
2) In your Rectangle, it looks like you are assinging the full Colors
object to the color on the rectangle.
3) You can alias the Colors contents directly in the styles. Yes, I
would also prefer avoiding this, but it would mean users don't have to
know the Colors type.
I hope this helps.
--
Bo Thorsen, European Engineering Manager, ICS
Meet me at our quickstarts across Europe in March.
London, Copenhagen, Hamburg, Munich and Zurich.
See this page: http://ics.com/qt-quickstart
More information about the Interest
mailing list