加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

QML-Text实战

(2013-10-30 09:24:29)
标签:

qml

text

qml之text

text实战

分类: QML
一、属性
1、文本、颜色、斜体、下划线、大小等
例:
import QtQuick 2.0
import QtQuick.Window 2.1

Window {
    title: "Hello QML"
    width: 300
    height: 200

    Column{
x:100
y:30
spacing: 10

Text {
    text: "hello world"
    color: "blue"
}
Text {
    text: "hello world"
    font.family: "Helvetica"
}
Text {
    text:"hello world"
    font.italic: true
}
Text {
    text: "hello world"
    font.strikeout: true
}
Text {
    text:"hello world"
    font.underline: true
}
Text {
    text:"hello world"
    font.bold: true
}
Text {
    text:"hello world"
    font.pixelSize: 16
}
Text {
    text:"hello world"
    font.pointSize: 16
}
    }
}
效果:
QML-Text实战
如图:
text:显示的文本
color:文本颜色
font.family:字体
font.italic:是否斜体
font.strikeout: 是否删除线
font.underline:是否下划线
font.bold:是否粗体
font.pixelSize:字体大小(像素为单位)
font.pointSize:字体大小(点为单位)

2、字体样式
例:
import QtQuick 2.0
import QtQuick.Window 2.1

Window {
    title: "Hello QML"
    width: 300
    height: 200

    Column{
x:100
y:30
spacing: 10

Text {
    text: "hello world"
    font.weight: Font.Light
}
Text {
    text: "hello world"
    font.weight: Font.Normal
}
Text {
    text:"hello world"
    font.weight: Font.DemiBold
}
Text {
    text:"hello world"
    font.weight: Font.Bold
}
Text {
    text:"hello world"
    font.weight: Font.Black
}
    }
}
效果:
QML-Text实战

3、指定宽度显示长文本(剪裁)
例:
import QtQuick 2.0
import QtQuick.Window 2.1

Window {
    title: "Hello QML"
    width: 300
    height: 200

    Column{
x:100
y:30
spacing: 10

Text {
    text: "abcdefghijklmnopqrstuvwxyz"
    clip: false
            width: 50
        font.pointSize: 16
}
Text {
          text: "abcdefghijklmnopqrstuvwxyz"
        clip: true
        width: 50
        font.pointSize: 16
}
    }
}
效果:
QML-Text实战
如图:
    当设置clip为false时,在一个定长的范围内显示一个长字符串,将会忽略width。反之,会根据width来进行字符串的截取,

4、指定宽度显示长文本(以...代替)
例:
import QtQuick 2.0
import QtQuick.Window 2.1

Window {
    title: "Hello QML"
    width: 300
    height: 200

    Column{
x:100
y:30
spacing: 10

Text {
        text: "abcdefghijklmnopqrstuvwxyz"
        width: 50
        font.pointSize: 16
        elide: Text.ElideNone
}
Text {
        text: "abcdefghijklmnopqrstuvwxyz"
        width: 50
        font.pointSize: 16
        elide: Text.ElideLeft
}
Text {
        text:"abcdefghijklmnopqrstuvwxyz"
        width: 50
        font.pointSize: 16
        elide: Text.ElideMiddle
}
Text {
        text:"abcdefghijklmnopqrstuvwxyz"
        width: 50
        font.pointSize: 16
        elide: Text.ElideRight 
}
    }
}
效果:
QML-Text实战
如图:
当设置elide时,在一个定长的范围内显示一个长字符串,则会根据elide的值来进行确定显示方式:
Text.ElideNone - 默认值,进行完全显示
Text.ElideLeft  左边显示3个点
Text.ElideMiddle  - 中间显示3个点
Text.ElideRight  - 右边显示3个点

5、间距
例:
import QtQuick 2.0
import QtQuick.Window 2.1

Window {
    title: "Hello QML"
    width: 300
    height: 200

    Column{
        x:100
        y:30
        spacing: 10

Text {
    text:"hello world"
    font.pointSize: 16
}
Text {
    text: "hello world"
    font.pointSize: 16
    font.letterSpacing : 30
}
Text {
    text: "hello world"
    font.pointSize: 16
    font.wordSpacing : 30
}
    }
}
效果:
QML-Text实战
如图:
letterSpacing 为单个字母之间的距离,wordSpacing 为单个单词之间的距离

6、字体风格、风格颜色
例:
import QtQuick 2.0
import QtQuick.Window 2.1

Window {
    title: "Hello QML"
    width: 300
    height: 200

    Column{
x:100
y:30
spacing: 10

Text {
    text:"hello world"
    font.pointSize: 16
    style: Text.Normal 
}
Text {
    text: "hello world"
    font.pointSize: 16
    style: Text.Outline 
    styleColor: "red" 
}
Text {
    text: "hello world"
    font.pointSize: 16
    style: Text.Raised
    styleColor: "green"
}
Text {
    text: "hello world"
    font.pointSize: 16
    style: Text.Sunken
    styleColor: "blue"
}
    }
}
效果:
QML-Text实战
如图:
style:定义文本的样式
styleColor:定义文本样式所使用的辅助色。
styleColor被用作文本的轮廓颜色,凸起或凹陷的文字阴影颜色。如果没有指定样式,则不起作用。

7、大小写
例:
import QtQuick 2.0
import QtQuick.Window 2.1

Window {
    title: "Hello QML"
    width: 300
    height: 200

    Column{
x:100
y:30
spacing: 10

Text {
    text:"hello world"
    font.pointSize: 16
    font.capitalization: Font.MixedCase
}
  Text {
    text:"hello wolld"
    font.pointSize: 16
    font.capitalization: Font.AllUppercase
}
Text {
    text:"HELLO world"
    font.pointSize: 16
    font.capitalization: Font.AllLowercase
}
Text {
    text:"hello world"
    font.pointSize: 16
    font.capitalization: Font.SmallCaps
}
Text {
    text:"hello world"
    font.pointSize: 16
    font.capitalization: Font.Capitalize
}
    }
}
效果:
QML-Text实战
如图:
Font.MixedCase - 正常情况
Font.AllUppercase - 设置为大写字母
Font.AllLowercase - 设置为小写字母
Font.SmallCaps - 设置为小型大写字母
Font.Capitalize - 每一个单词的第一个字母大写

8、换行
例:
import QtQuick 2.0
import QtQuick.Window 2.1

Window {
    title: "Hello QML"
    width: 300
    height: 200

    Column{
x:100
y:30
spacing: 10

Text{
    text: "I am coming, Qt... Just do it." 
    width: 100
    font.pointSize: 16
    wrapMode: Text.NoWrap
}
Text{
    text: "I am coming, Qt... Just do it." 
    width: 100
    font.pointSize: 16
    wrapMode: Text.WordWrap 
}
Text{
    text: "I am coming, Qt... Just do it." 
    width: 100
    font.pointSize: 16
    wrapMode: Text.WrapAnywhere
}
Text{
    text: "I am coming, Qt... Just do it." 
    width: 100
    font.pointSize: 16
    wrapMode: Text.Wrap
}
    }
}
效果:
QML-Text实战
如图:
设置属性为换行的文字文本项的宽度。如果一个指定的宽度已设置则文本会收缩。
Text.NoWrap (default) - 没有设置换行。如果文本中包含换行符不足,则contentWidth将超过设定宽度。
Text.WordWrap - 仅在字边界收缩。如果一个单词太长,contentWidth将超过一组宽度。
Text.WrapAnywhere - 在行上的任何一点都有可能换行,即使它发生在中间的一个文字。
Text.Wrap -  如果可能的话,在单词边界换行,否则在适当的点,即使是在中间的一个字。

二、信号
例:
import QtQuick 2.0
import QtQuick.Window 2.1

Window {
    title: "Hello QML"
    width: 300
    height: 200

    Text{
anchors.centerIn: parent
font.pointSize: 16
text: "See the Qt Project website."
onLinkActivated:  Qt.openUrlExternally(link)
    }
}
效果:
QML-Text实战
如图:
点击链接就会跳转至“http://qt-project.org”对应的Qt页面。

    好了,主要的应用就这些,如有其它需求,请查看官方文档。。。

注:
    技术在于交流、沟通,转载请注明出处并保持作品的完整性。

0

阅读 收藏 喜欢 打印举报/Report
前一篇:QML之Text
后一篇:QML之Button
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有