QML Styling/it: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
No edit summary
 
No edit summary
Line 1: Line 1:
[[QmlStyling|English]] [[QmlStyling_Spanish|Spanish]] '''Italiano''' [[QmlStyling_Hungarian|Magyar]]<br />[toc align_right=&quot;yes&amp;quot; depth=&quot;3&amp;quot;]
[[QmlStyling|English]] [[QmlStyling_Spanish|Spanish]] '''Italiano''' [[QmlStyling_Hungarian|Magyar]]
[toc align_right="yes" depth="3"]


= Abbellimenti in QML =
= Abbellimenti in QML =
Line 7: Line 8:
== Approccio 1: Componente Personalizzato ==
== Approccio 1: Componente Personalizzato ==


QML supporta la definizione di propri &quot;componenti personalizzati&amp;quot;:http://doc.qt.nokia.com/4.7/qml-extending-types.html#defining-new-components. Di seguito, creiamo un componente personalizzato '''TitleText''' che possiamo utilizzare ogni volta che la nostra interfaccia utente richiede un titolo. Se vogliamo cambiare l'aspetto di tutti i titoli della nostra interfaccia utente, possiamo editare ''TitleText.qml'', e le modifiche si applicheranno ovunque esso venga utilizzato.
QML supporta la definizione di propri "componenti personalizzati":http://doc.qt.nokia.com/4.7/qml-extending-types.html#defining-new-components. Di seguito, creiamo un componente personalizzato '''TitleText''' che possiamo utilizzare ogni volta che la nostra interfaccia utente richiede un titolo. Se vogliamo cambiare l'aspetto di tutti i titoli della nostra interfaccia utente, possiamo editare ''TitleText.qml'', e le modifiche si applicheranno ovunque esso venga utilizzato.


<code>// TitleText.qml<br />Text {<br /> horizontalAlignment: Text.AlignHCenter<br /> font.pixelSize: 50<br /> color: &quot;green&amp;quot;<br />}
<code>// TitleText.qml
Text {
horizontalAlignment: Text.AlignHCenter
font.pixelSize: 50
color: "green"
}


// in uso<br />TitleText {<br /> text: &quot;Title 1&amp;quot;<br />}</code>
// in uso
TitleText {
text: "Title 1"
}</code>


== Approccio 2: Oggetto di stile ==
== Approccio 2: Oggetto di stile ==
Line 17: Line 26:
In questo approccio definiamo un oggetto '''Style''' che contenga la definizione delle proprietà dello stile. Questo oggetto è istanziato nel componente principale, per cui è disponibile in tutta l'applicazione.
In questo approccio definiamo un oggetto '''Style''' che contenga la definizione delle proprietà dello stile. Questo oggetto è istanziato nel componente principale, per cui è disponibile in tutta l'applicazione.


<code>// Style.qml<br />QtObject {<br /> property int textSize: 20<br /> property color textColor: &quot;green&amp;quot;<br />}
<code>// Style.qml
QtObject {
property int textSize: 20
property color textColor: "green"
}


// componente principale<br />Rectangle {<br /> <br /> Style { id: style }<br /> <br />}
// componente principale
Rectangle {
Style { id: style }
}


// in use<br />Text {<br /> font.pixelSize: style.textSize<br /> color: style.textColor<br /> text: &quot;Hello World&amp;quot;<br />}</code>
// in use
Text {
font.pixelSize: style.textSize
color: style.textColor
text: "Hello World"
}</code>


== Approccio 3: Ibrido (Oggetto di stile + Componente personalizzato) ==
== Approccio 3: Ibrido (Oggetto di stile + Componente personalizzato) ==
Line 27: Line 50:
In questo approccio, abbiamo un oggetto '''Style''' che è usato in un componente personalizzato.
In questo approccio, abbiamo un oggetto '''Style''' che è usato in un componente personalizzato.


<code>// Style.qml<br />QtObject {<br /> property int titleAlignment: Text.AlignHCenter<br /> property int titleFontSize: 50<br /> property color titleColor: &quot;green&amp;quot;<br />}
<code>// Style.qml
QtObject {
property int titleAlignment: Text.AlignHCenter
property int titleFontSize: 50
property color titleColor: "green"
}


// componente principale<br />Rectangle {<br /> <br /> Style { id: style }<br /> <br />}
// componente principale
Rectangle {
Style { id: style }
}


// TitleText.qml<br />Text {<br /> horizontalAlignment: style.titleAlignment<br /> font.pixelSize: style.titleFontSize<br /> color: style.titleColor<br />}
// TitleText.qml
Text {
horizontalAlignment: style.titleAlignment
font.pixelSize: style.titleFontSize
color: style.titleColor
}


// in uso<br />TitleText {<br /> text: &quot;Title 1&amp;quot;<br />}</code>
// in uso
TitleText {
text: "Title 1"
}</code>

Revision as of 13:00, 25 February 2015

English Spanish Italiano Magyar [toc align_right="yes" depth="3"]

Abbellimenti in QML

QML fornisce diversi meccanismi per l'abbellimento di un'interfaccia utente. Qui di seguito sono elencati tre approcci comuni.

Approccio 1: Componente Personalizzato

QML supporta la definizione di propri "componenti personalizzati":http://doc.qt.nokia.com/4.7/qml-extending-types.html#defining-new-components. Di seguito, creiamo un componente personalizzato TitleText che possiamo utilizzare ogni volta che la nostra interfaccia utente richiede un titolo. Se vogliamo cambiare l'aspetto di tutti i titoli della nostra interfaccia utente, possiamo editare TitleText.qml, e le modifiche si applicheranno ovunque esso venga utilizzato.

// TitleText.qml
Text {
 horizontalAlignment: Text.AlignHCenter
 font.pixelSize: 50
 color: "green"
}

// in uso
TitleText {
 text: "Title 1"
}

Approccio 2: Oggetto di stile

In questo approccio definiamo un oggetto Style che contenga la definizione delle proprietà dello stile. Questo oggetto è istanziato nel componente principale, per cui è disponibile in tutta l'applicazione.

// Style.qml
QtObject {
 property int textSize: 20
 property color textColor: "green"
}

// componente principale
Rectangle {
 
 Style { id: style }
 
}

// in use
Text {
 font.pixelSize: style.textSize
 color: style.textColor
 text: "Hello World"
}

Approccio 3: Ibrido (Oggetto di stile + Componente personalizzato)

In questo approccio, abbiamo un oggetto Style che è usato in un componente personalizzato.

// Style.qml
QtObject {
 property int titleAlignment: Text.AlignHCenter
 property int titleFontSize: 50
 property color titleColor: "green"
}

// componente principale
Rectangle {
 
 Style { id: style }
 
}

// TitleText.qml
Text {
 horizontalAlignment: style.titleAlignment
 font.pixelSize: style.titleFontSize
 color: style.titleColor
}

// in uso
TitleText {
 text: "Title 1"
}