QML之TextEdit
TextEdit显示一个可编辑的,有格式的文本框。它也可以显示明文和富文本。例如:
TextEdit {
width: 240
text: "<b>Hello</b> <i>World!</i>"
font.family: "Helvetica"
font.pointSize: 20
color: "blue"
focus: true
}
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAPAAAAArCAIAAADJzpIpAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADxUlEQVR4nO2cbY6cMAyGQ9UbZc4EZ4IzhTOlPzI1xnbMx2S1mvA+QlUXgjHDgwec1Q455wBAL/z57QQAaAmEBl0BoUFX7IQeht9KA4A2oEKDroDQoCsgNOgKCA26AkKDroDQoCuk0MOwLSaHAw4xI3we1mdZ3sHX1di6ru+t02Tv/nq1z62k9HqdHT9NMsOS1bK0zOrbQYUOIRw4sa7v22CeWx60xIzx/virEZ7AU4R2rvq6bkKb9Zu2jmPLlD4UmlKF0JynCO1wWJ7LgLY2h4tCa31Rnk0eJ7SoweRr7XHiR8tzuCg0H/xDt9m301LodQ3TtL0/vV7Vd6zPw5rPBjcgLYorOqwY4GSlK3157SsfwrK8B5dDOPWVRvKweIA+S2aEsFtMagNSkrvTktJxhFrYcayGHUc7QxNKb56NlSlt/+fMs30KtaxiNIbNc45Rnl3ZJE4hpd1IWigCJW9mC3LOntCHCyFsjlFeGC7EeaEdm284rYUu8YuFpiLlLExNy9HLeaW0reTxaffy7zhuW4WgYvw8v+8xuqPEx1jWi8RAbiU0N0986Nq8k0KLm4Sufe0aH5+qEk5EED/y+k3Uanbe3x7ipIS4+ljm7vp8xeBL9/NDaCN0rWRy0c2jOCv5vk7Y8xdVuFXzjyQzy7NZWQuixtOPOkP9bWDePCIxnomTxsNp8AzNS6m4Hry6iEJ4KDR/aBFh+RHPf+0KoXVkPsB55q4dUWhK567RDwx+xdWZlA8HaP5+/lrJOwPORO66Xnsl52HFjvpl/yql8xDjLlSMW7TSW4hx1xejlQ6iT2y21e61LMR49DdMHtSH5o05v/ccKl1ex9GgdHccvSR0rWONDrRJgwrNSam66WpF4fVSFCSneJ+BzKsJRPXbFLqG0P280P4ki/5aQAfaoUGF1l+FfGkSVsxZ8B9vHKL4qsszhboxCbcs27kH19FLc4Q0kanLM4S24Q/U914KM3uBi3HX9tITCrUI/rtmaNG248mYL3ai7V2L4HQtRJLOUcQm/donckZD4yRthBaS6YkV3f09Y3nbiRUezfSj1jjXEcwpFb6L07VwplTKeppSMfs85YjoQNdoNvUtnK7ZXItQC9tq6puHqvXdzCkMgTk1rZNxbhvzi6X2iwO694c5Qp9mQuf/xYM/flAlO4zwedhDzNlpDtnj3yq8dprJOL9o4W8SYfP1jjUYMvvro8MQ8LdIwVfzoD40eAIQGnQFhAZdAaFBV0Bo0BUQGnQFhAZdsRMaTWjw7aBCg66A0KArIDToCggNuuIfk0Ft/KcBUTYAAAAASUVORK5CYII=" alt="" />
设置focus为真 来使得TextEdit接受键盘焦点。
注意:文本编辑框没有实现滚动操作,光标操作,以及其他的一些针对特定于感官等的行为。例如添加flickable 滚动去跟随光标:
Flickable {
id: flick width: 300; height: 200;
contentWidth: edit.paintedWidth
contentHeight: edit.paintedHeight
clip: true function ensureVisible(r)
{
if (contentX >= r.x)
contentX = r.x;
else if (contentX+width <= r.x+r.width)
contentX = r.x+r.width-width;
if (contentY >= r.y)
contentY = r.y;
else if (contentY+height <= r.y+r.height)
contentY = r.y+r.height-height;
} TextEdit {
id: edit
width: flick.width
height: flick.height
focus: true
wrapMode: TextEdit.Wrap
onCursorRectangleChanged: flick.ensureVisible(cursorRectangle)
}
}
一个特别的感官可能使用平滑的滚动(例如使用SmoothedAnimation),可能又一个可以看得见的滚动条,或者是一个淡出到显示位置的滚动条,等等。
剪贴板支持 可以提供cut(),copy(),paste()函数,selection可以依靠设置selectByMouse去在传统的鼠标机制中处理各类信息。通过设置起始位置与终止位置来实现完整的处理,或者用selectAll()或者selectWord();
你可以通过positionAt()和positionToREctangle()在光标位置和像素点之间进行转换。
具体详见 Text and TextInput.; 属性文档:
activeFocusOnPress : bool
TextEdit是否应该在鼠标下压时添加激活焦点事件。默认该设置为真。 baseUrl : url
这个属性制定了一个文本text中基本的被用来解决相关textURL。
默认值是QML实例化的TextEdit项目的url。 canPaste : bool
如果TextEdit是可写的并且剪贴板的内容是合适的去张贴到TextEdit中时,返回真。 canRedo : bool
如果TextEdit使可以编辑的并且这里确实可以允许重做操作时,返回真值。 canUndo : bool
如果TextEdit是可以编辑的并且拥有钱一个操作去允许被撤消操作时,返回真值。 color : color
文本颜色。
// green text using hexadecimal notation
TextEdit { color: "#00FF00" }
// steelblue text using SVG color name
TextEdit { color: "steelblue" } contentHeight : real
返回文本的高度,包括那些因为文本没有适合设置的高度而被覆盖了的高度值。 contentWidth : real
返回文本的宽度,包括那些过去由于不充分环绕,且wrapMode已经被设置好的,而覆盖的高度。 cursorDelegate : Component
编辑文本框中的光标代理。
如果为一个文本编辑框设置了cursorDelegate,这个代理将被用作绘制一个新光标来替代标准的光标。当需要一个光标时,委托的一个实例将被创建并且通过文本编辑器来进行管理,该代理的属性X和Y将被设置并作为当前字符左上角的一个像素。
注意:代理组件的根项目一定是一个QQuickItem 或者 QQuickItem 设备项目。 cursorPosition : int
光标在文本编辑的位置 cursorRectangle:rectangle
QML之TextEdit的更多相关文章
- Qt 5入门指南之Qt Quick编程示例
编程示例 使用Qt创建应用程序是十分简单的.考虑到你的使用习惯,我们编写了两套教程来实现两个相似的应用程序,但是使用了 不同的方法.在开始之前,请确保你已经下载了QtSDK的商业版本或者开源版本,并且 ...
- QML学习:Rectangle,Text,TextEdit,Flickable,Flipable元素
QML学习:Rectangle,Text,TextEdit,Flickable,Flipable元素 本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 参 ...
- qml基础学习 基础概念
一.概括 学习qt已有2年多的时间,从qt4.7开始使用直到现在正在使用的qt5.6,基本都在windows机器上做开发.最近有意向看了下qt的qml部分,觉着还是挺不错的,毕竟可以做嵌入式移动端产品 ...
- QML学习笔记(五)— 做一个简单的待做事项列表
做一个简单的QML待做事项列表,能够动态添加和删除和编辑数据 GitHub:八至 作者:狐狸家的鱼 本文链接:QML学习笔记(五)— 做一个待做事项列表 主要用到QML:ListView 效果 全部代 ...
- QML 从入门到放弃 第二卷
第二卷如何更快速的放弃,注重的是C++和QML的交互 <1>记事本.. (1) 先测试下不在QML创建C++对象,仅仅在main.cpp添加一个属性函数供调用. 注意只使用槽函数来做到. ...
- QML 从入门到放弃
发现了一个问题: QQuickView only supports loading of root objects that derive from QQuickItem. If your examp ...
- QML C++插件dll引用
插件的创建非常简单,但是它可以复用,并且为不同的应用程序扩展类型.使用创建的插件是非常灵活的解决方案.关于插件一个很好的例子见QmlBook-In-Chinese 中最后一章介绍的例子. 本文主要备忘 ...
- QML常用控件
这里的控件是显示的元素 1.Item:一切的基类 Item { Image { source: "tile.png" } Image { x: width: height: sou ...
- QT之QML控件篇
QT quick中提供了很多的实用控件widget,下面介绍几种常用的. 这部分介绍基本是参照QtCretator提供的帮助文档,一定要学会使用,不明白的去查找帮助. Item 基本上所有的可是控件的 ...
随机推荐
- Java Apcahe的HTTPClient工具Http请求当请求超时重发
java Apcahe的HTTPClient工具Http请求当请求超时时底层会默认进行重发,默认重发次数为3次,在某些情况下为了防止重复的请求,需要将自动重发覆盖. 设置HTTP参数,设置不进行自动重 ...
- LINUX下mysql的大小写是否区分设置 转
一.Linux中MySQL大小写详情:1.数据库名严格区分大小写2.表名严格区分大小写的3.表的别名严格区分大小写4.变量名严格区分大小写5.列名在所有的情况下均忽略大小写6.列的别名在所有的情况下均 ...
- C# 枚举 字符串 转换
普通方法 这种方法尽管很SB但确实可以解决问题 private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { st ...
- CentOS6.4下使用默认的文档查看器打开PDF文档乱码的解决方案
最近在CentOS6.4下使用其默认的文档查看器打开PDF文档时出现乱码的方块,有两种方法可以解决. 方法一:修改/etc/fonts/conf.d/49-sansserif.conf文件,如 ...
- jsp-javabean-setproperty介绍
李兴华<java web开发实战经典>第7章关于javabean的讲解中说道:<jsp:setProperty>标签一共有4种使用方法·下面列出了4种操作语法的格式: 设置 ...
- java 流程执行 循环 foreach循环
一. if分支 1. 结构 if else if else 2.执行原则 if if if 结构 会一直去执行()里的判断语句 if else if else if 结构 只要一条( ...
- ashx+html+ajax
HTML: $(function() { ajax("NewsList.ashx", function(resText) { document.getElementById(&qu ...
- Parallel类(简化Task 操作)
Parallel类 Parallel类是对线程的一个很好抽象.该类位于System.Threading.Tasks命名空间中,提供了数据和任务并行性. 1.用Parallel.For()方法循环 // ...
- sql执行万条update语句优化
几个月没有更新笔记了,最近遇到一个坑爹的问题,顺道记录一下.. 需求是这样的:一次性修改上万条数据库. 项目是用MVC+linq的. 本来想着用 直接where() 1 var latentCusto ...
- javascript通过字典思想操作数据
作为一名前端程序猿,相对于后端操作数据的机会较少.然而,有些时候因为一些特殊的原因(如:需要构造成对应插件需要的数据格式,需要返回特定的数据格式等)而不得不对数据进行筛选.重构.相对于后端语言,我们没 ...