QML官方系列教程——Use Case - Style And Theme Support

附网址:http://qt-project.org/doc/qt-5/qtquick-usecase-styling.html

Use Case - Style And Theme Support—— 用例 - 风格和主题支持

Qt Quick模块提供的类型并不能独立地覆盖用户界面所需要的所有组件。一个常见的做法是通过Qt
Quick
的基本模块开发一套自定义样式的用户界面组件。通过可复用组件我们很容易做到这一点。

通过使用可复用组件的方式,你可以定义该组件在程序中需要呈现的外观,并直接为它设计一个风格。然后你可以使用它来代替那些没有风格的类型。例如,你可以创建一个MyText.qml,假设它的属性已经被你明确设置好,然后你就可以使用MyText来代替你的应用程序中的所有Text。

Example Themed Text —— 主题文本示例

Button Definition

import QtQuick 2.0

Text {
    color: "lightsteelblue"
    font { family: 'Courier'; pixelSize: 20; bold: true; capitalization: Font.SmallCaps }
}

·

Using the Text

Column {
        spacing: 20

        MyText { text: 'I am the very model of a modern major general!' }

        MyText { text: 'I\'ve information vegetable, animal and mineral.' }

        MyText {
            width: root.width
            wrapMode: Text.WordWrap
            text: 'I know the kings of England and I quote the fights historical:'
        }

        MyText { text: 'From Marathon to Waterloo in order categorical.' }
    }

·

由于MyText.qml中的根项目是一个Text,因此它的行为类似一个Text项目,并且其属性可以被重写以适合特殊的用途。然而,与Text不同的是,当MyText第一次生成时这些属性值就被明确设定,因此程序默认应用了你的风格。

对于预置风格的用户界面组件,可以查看Qt Components add-on(译者:这里应该是有一个连接的,但是官网上没有),它提供了一系列组件。要了解系统主题,可以参考SystemPalette类型文档。

Example Themed Button —— 主题按钮示例

Button Definition

import QtQuick 2.0

Rectangle {
    id: container
    // The caption property is an alias to the text of the Text element, so Button users can set the text
    property alias caption: txt.text
    // The clicked signal is emitted whenever the button is clicked, so Button users can respond
    signal clicked

    // The button is set to have rounded corners and a thin black border
    radius: 4
    border.width: 1
    // This button has a fixed size, but it could resize based on the text
    width: 160
    height: 40

    // A SystemPalette is used to get colors from the system settings for the background
    SystemPalette { id: sysPalette }

    gradient: Gradient {

        // The top gradient is darker when 'pressed', all colors come from the system palette
        GradientStop { position: 0.0; color: ma.pressed ? sysPalette.dark : sysPalette.light }

        GradientStop { position: 1.0; color: sysPalette.button }
    }

    Text {
        id: txt
        // This is the default value of the text, but most Button users will set their own with the caption property
        text: "Button"
        font.bold: true
        font.pixelSize: 16
        anchors.centerIn: parent
    }

    MouseArea {
        id: ma
        anchors.fill: parent
        // This re-emits the clicked signal on the root item, so that Button users can respond to it
        onClicked: container.clicked()
    }
}

·

Using the button

import QtQuick 2.0

Item {
    width: 320
    height: 480

    Rectangle {
        color: "#272822"
        width: 320
        height: 480
    }

    Column {
        width: childrenRect.width
        anchors.centerIn: parent
        spacing: 8
        // Each of these is a Button as styled in Button.qml
        Button { caption: "Eeny"; onClicked: console.log("Eeny");}
        Button { caption: "Meeny"; onClicked: console.log("Meeny");}
        Button { caption: "Miny"; onClicked: console.log("Miny");}
        Button { caption: "Mo"; onClicked: console.log("Mo");}
    }
}

·

参考有关教程以了解更多创建QML定制UI组件的示例。(译者:好吧这里也没有连接,我找到有关教程会贴在这里)

QML官方系列教程——Use Case - Style And Theme Support,布布扣,bubuko.com

时间: 2024-11-11 22:39:21

QML官方系列教程——Use Case - Style And Theme Support的相关文章

QML官方系列教程——Scalability

附网址:http://qt-project.org/doc/qt-5/scalability.html Scalability -- (多屏)扩展性 Qt Quick使你开发的应用程序能够在类似桌面,手持设备等多个不同的平台上运行.特别地,它们还能够应付不同的的屏幕配置:尺寸,密度,方向,分辨率以及纵横比. 在这些情况下你需要考虑程序的扩展性: · 你希望将应用程序部署在多个平台,比如Android,BlackBerry,iOS,或者不同的屏幕配置以及物理尺寸的设备上. · 有些新的设备出现在你

QML官方系列教程——Qt Quick Controls Overview

附网址:http://qt-project.org/doc/qt-5/qtquickcontrols-overview.html Qt Quick Controls Overview -- Qt Quick Controls概述 Qt Quick Controls提供了一套用来在Qt Quick中创建用户界面的UI控件. Getting Started -- 开始 在你的.qml文件中使用以下声明将这些QML类型引入到你的应用程序中. import QtQuick.Controls 1.2 ·

QML官方系列教程——Qt Quick Controls Styles

附网址:http://qt-project.org/doc/qt-5/qtquickcontrolsstyles-index.html Qt Quick Controls Styles -- Qt Quick控件样式 Qt Quick Controls Styles子模块允许为Qt Quick Controls设置自定义的样式. 它在Qt 5.1中被引入因此需要Qt Quick 2.1. Getting Started -- 开始 使用以下声明将这些QML类型引入到你的应用程序中. import

QML官方系列教程——Qt Quick Dialogs

附网址:http://qt-project.org/doc/qt-5/qtquickdialogs-index.html Qt Quick Dialogs -- Qt Quick对话框 该模块自Qt 5.1推出. Dialogs ColorDialog -- 用来选择颜色的对话框 FileDialog -- 文件对话框 FontDialog -- 字体对话框 MessageDialog -- 弹出消息对话框 Related information -- 相关阅读 Examples -- 示例代码

QML官方系列教程——Qt Quick Layouts

附网址:http://qt-project.org/doc/qt-5/qtquicklayouts-index.html Qt Quick Layouts -- Qt Quick布局 Qt Quick Layouts是用来对用户界面内元素进行布局的一组QML类型.与positioners不同的是,Layouts会改变这些组件的尺寸.这使得它很适合用在尺寸可变的用户界面上.由于layouts也属于items,因此多个布局可以嵌套包含. 该模块自Qt 5.1推出,需要Qt Quick 2.1. 可以

QML官方系列教程——QML Applications

附网址:http://qt-project.org/doc/qt-5/qmlapplications.html 如果你对Qt的官方demo感兴趣,可以参考本博客的另一个系列Qt5官方demo解析集 每个绿色字体均是一篇博文连接,请收藏本文,本文会持续更新 . QML Applications —— QML应用程序 QML是一种声明式语言,它提供了一组接口用来描述可视化组件以及他们之间的互动.它是一个高度可读的语言,并且被设计成使组件以一个动态的方式相互连接.同时它使组件很容易被复用以及创建定制的

QML官方系列教程——Qt Quick Controls

http://blog.csdn.net/asmcos/article/details/46676101 http://blog.csdn.net/asmcos/article/details/46676087 http://blog.csdn.net/asmcos/article/details/46676073 http://blog.csdn.net/asmcos/article/details/46676053 http://blog.csdn.net/asmcos/article/de

struts2 官方系列教程三:使用struts2 标签 tag

避免被爬,先贴上本帖地址:struts2 官方系列教程一:使用struts2 标签 tag http://www.cnblogs.com/linghaoxinpian/p/6901316.html 本教材假定你已完成了HelloWorld项目,你可以在 struts2 官方系列教程三:使用struts2 标签 tag 下载本章节的代码 在上一节教程中,我们在index.jsp中使用 url tag 创建了一个超链接hello.action 这节我们将探索struts2中其它tags Web应用程

QML官方教程翻译——Use Case - Integrating JavaScript in QML

附网址:http://qt-project.org/doc/qt-5/qtquick-usecase-integratingjs.html Use Case - Integrating JavaScript in QML -- 在QML中集成JavaScript代码 JavaScript代码可以很容易被集成到QML中以提供UI逻辑,必要的控制,或是其他益处. Using JavaScript Expressions for Property Values -- 使用JavaScript表达式表示