本文主要介紹基本元素TextInput,TextField,TextEdit,TextArea等的基本屬性。
1)行編輯
Qt快速提供了兩個行編輯控件,即Textlnput與TextField。
A)TextInput
的TextInput用於編輯一行文本,類似於QLineEdit的。支持使用驗證器或輸入掩碼對輸入文本做範圍限制.Textlnput目前支持IntValidator,DoubleValidator,RegExpValidator,如果你設置了驗證器的屬性,用戶只能輸入驗證所界定範圍的字符.inputMask是個字符串,用來限制你可以輸入的字符,可以參考QLineEdit的輸入掩碼::來了解詳情。掩碼串內包含允許的字符和分隔符,後面還可以跟一個可選的分號,以及一個用上補空白的字符。例如“2016年12月23日”。
TextInput可以設置echoMode實現密碼框的效果。假如你想使用Textlnput來輸入密碼,可以設置echoMode屬性為Textlnput.Password,TextInput.PasswordEchoOnEdit或TextInput.NoEcho,而echoMode默認為TextInput.Normal,即輸入什麼顯示什麼。如果echoMode不為Textlnput.Normal,那麼displayText屬性就保存顯示給用戶的文本,而文本屬性則保存實際輸入的文本,比如你設定passwordCharacter為“*”,echoMode為TextInput.Password,那麼displayText屬性內保存的就是一串“*”。
font分組屬性允許你設置TextInput元素所用字體的各種屬性,包括字體族(family),大小(pixelSize.pointSize),粗細(粗體,粗體),斜體(italic),下劃線(下劃線)等。與文字屬性一樣,文本可以獲取到元素的文本,horizo​​ntalAlignment和verticalAlignment用於設定文本對齊方式,wrapMode設置文本超過控件寬度時換行策略,顏色設置文字顏色,contentWidth,contentHeight返回文本的寬,高。不過,TextInput不支持使用HTML標記的富文本。
長度屬性返回編輯框內的字符個數,使用它比通過文本屬性取得文本再調用字符串對象的長度方法效率要高很多.maximumLength設置編輯框允許輸入的字符串的最人長度,超過這個長度就會被截斷。
的TextInput的光標就是光標,可以通過cursorDelegate來定制它的外觀,而QLineEdit的的光標樣子很難定制.cursorPosition可以設置或返回光標位置; cursorVisible設置或返回光標的可見狀態.cursorRectangle是只讀屬性,當cursorRectangle變化尺寸,返回光標所在矩形,定制的cursorDelegate會受這個屬性影響,cursorDelegate的尺寸和位置會跟著變化。
Textlnput允許用戶選擇文本,如果selectByMouse屬性設置為真,月戶就可以使用鼠標來選擇編輯框內的文字.selectedText是只讀屬性,保存用戶選中的文字.selectionStart,選定結束表示選中的起,止位置; selectedTextColor表示選中的文本顏色,而selectionColor設置則表示選中框的顏色。
則表示選中框的顏色。當用戶按了回車鍵或確認鍵,或者編輯框失去焦點時,會發出接受和編輯完成的信號,開發者可以實現onAccepted和onEditingFinished信號處理器來處理。注意,如果設置了inputMask或validator,那麼只有在編輯框內的文本符合限制條件時這兩個信號才會觸發。
TextInput還支持粘貼(canPaste),撤銷(canUndo),重做(canRedo),滾動(autoScroll)等特性,也有一些方法如copy(),cut(),insert(),select(),getText()等。
B)TextField
基本屬性與的TextInput類似。下面只說不同之處。
的(a)文本顏色
的TextInput的文本顏色使用顏色屬性指定,文本字段的文本顏色使用文字顏色屬性指定。
(二)背景色
TextInput沒有背景,是透明的,能夠與父控件無縫結合;而TextField有背景,其背景色可通過TextFieldStyle的(組件類型的)background屬性來設定,其他屬性都一樣.Qt助手上給出了使用TextField Style的例子:

TextField {
style: TextFieldStyle {
textColor: "black"
background: Rectangle {
radius: 2
implicitWidth: 100
implicitHeight: 24
border.color: "#333"
border.width: 1
}
}
}
(c)中是否可以定制光標
的TextInput類的cursorDelegate屬性可以用來定制編輯光標,而文本字段沒有。
2)文本塊
Qt Quick中有兩個塊編輯控件,即TextEdit和TextArea。
A)TextEdit
TextEdit是Qt Quick提供的多行文本編輯框,它的大多數屬性與TextInput類似。下面僅介紹主要的內容。
textDocument屬性,可以結合QSyntaxHighlighter來實現語法高亮。
textFormat用於指定文本格式,是純文本(TextEdit.PlainText),富文本(TextEdit.RichText)還是自動檢測(TextEdit.AutoText),默認值是TextEdit.PlainText.lineCount屬性返回編輯框內的文本行數。因為支持富文本,文本編輯還有的linkActivated信號,在用戶點擊文本中內嵌的鏈接時觸
發,linkHovered信號在鼠標懸停在文本內嵌的鏈接上方時觸發。
當一行文本要佔用的寬度大於文本編輯的寬度時,wrapMode決定如何折行,它支持TextEdit.WordWrap(在單詞邊界處折行),TextEdit.NoWrap(不折行,超出寬度的文本不顯示),文本編輯.WrapAnywhere(折行,不考慮單詞邊界),文本編輯。包裹(折行,盡量在單詞邊界處折行)4種換行策略。
修改文本可以使用append(),insert(),cut(),paste(),remove()等方法,獲取文本可以使用getText方法或者text屬性。
特別注意:TextEdit,TextInput,Text等元素雖不能定制背景,但是可以通過再這些對象的底下放置一個z序更小的Rectangled對象來實現背景的設置。
B)TextArea
文本區基本屬性與文本編輯類似,我們只說不同之處。
的(a)文本顏色
文本編輯的文木顏色使用顏色屬性指定,文本區域的文本顏色使用文字顏色屬性指定。
(二)背景色
文本編輯沒有背景,是透明的,能夠與父控件無縫結合。而TextArea中有背景,其背景色可通過TextAreaStyle的(顏色類型的)背景屬性來設定。下面是Qt的助手上給出的例子。

TextArea {
style: TextAreaStyle {
textColor: "#333"
selectionColor: "steelblue"
selectedTextColor: "#eee"
backgroundColor: "#eee"
}
}

(c)中背景色
    與的TextInput類似,文字編輯也有cursorDelegate屬性,文本區沒有。
    (d)文本滾動
      TextArea繼承自ScrollView,可以支持上下方向鍵(非只讀模式),翻頁鍵以及鼠標中鍵的滾動。


作者:张小酒 
来源:CSDN 
原文:https://blog.csdn.net/kanchuan1905/article/details/53839930?utm_source=copy 
版权声明:本文为博主原创文章,转载请附上博文链接!

arrow
arrow
    文章標籤
    QT QtQuick
    全站熱搜

    lynn770707 發表在 痞客邦 留言(0) 人氣()