QML Styling/bg

From Qt Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
This article may require cleanup to meet the Qt Wiki's quality standards. Reason: Auto-imported from ExpressionEngine.
Please improve this article if you can. Remove the {{cleanup}} tag and add this page to Updated pages list after it's clean.

Български English Spanish Italian Magyar French

Създаване на стилове в QML

QML предоставя няколко механизъма за стилизиране на потребителския интерфейс. Представяме ви три често срещани подхода.

Подход 1: Собствен компонент

QML поддържа дефинирането на собствени компоненти. По-долу, ние създаваме собственият компонент TitleText, който можем после да използваме в нашата програма, когато искаме заглавен текст. Ако изкаме да променим външният вид на всички заглавни текстове в нашият интерфейс, можем просто да редактираме TitleText.qml и промените ще се отразят навсякъде, където е използван.

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

// употреба
TitleText {
 text: "Title 1"
}

Подход 2: Допълнителен обект

При този подход, дефинираме Style обект, който съдържа колекцията от свойства, дефиниращи стила. Този обект е инстанциран в главният компонент, така че да е видим в цялото приложение.

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

// главен компонент
Rectangle {
 
 Style { id: style }
 
}

// употреба
Text {
 font.pixelSize: style.textSize
 color: style.textColor
 text: "Hello World"
}

Подход 3: Хибриден (Style обект + собствен компонент )

При този подход, имаме Style обект, който се използва в нашият компонент.

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

// главен компонент
Rectangle {
 
 Style { id: style }
 
}

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

// употреба
TitleText {
 text: "Title 1"
}