Qt文档阅读笔记-TextEdit QML Type官方解析及实例
目录
官方解析
博主栗子
官方解析
TextEdit展示了一个可编辑的一块,是有格式的文本。
他同样能展示普通文本和富文本:
TextEdit {width: 240text: "<b>Hello</b> <i>World!</i>"font.family: "Helvetica"font.pointSize: 20color: "blue"focus: true}
focus属性可以设置接收键盘的聚焦。
注意:TextEdit是不能实现滚动功能的,他是跟随光标的,或指定特定的外观或者感官,举个例子,下面的代码实现了跟随鼠标的弹动滚动的效果:
Flickable {id: flickwidth: 300; height: 200;contentWidth: edit.paintedWidthcontentHeight: edit.paintedHeightclip: truefunction 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: editwidth: flick.widthheight: flick.heightfocus: truewrapMode: TextEdit.WraponCursorRectangleChanged: flick.ensureVisible(cursorRectangle)}}
如果要追求好的视觉比如滑动滚动(使用SmootheAnimation),这会产生一个可视化的滚动条,或者是一个褪色的滚动条。
剪切板的功能被cut(),copy()和paste()函数提供,设置selectByMouse可以鼠标选择要剪切的内容,可以使用selectionStart和selectionEnd以及selectAll()或selectWord()。
可以在光标位置上进行转换,如使用positionAt()和positionToRectangle()
博主栗子
这里把官方的2个例子补充完整,这里要注意,第一个html的富文本在Qt5以上的版本貌似不能成功!
两个源码运行截图如下:
程序结构如下:
源码如下:
main.cpp
#include <QApplication>
#include <QQmlApplicationEngine>
#include <QDebug>int main(int argc, char *argv[])
{QApplication a(argc, argv);QQmlApplicationEngine engine;engine.load(QUrl("qrc:/main.qml"));if(engine.rootObjects().isEmpty()){qDebug() << "engine load failed!";return -1;}return a.exec();
}
main.qml
import QtQuick 2.7
import QtQuick.Controls 2.0ApplicationWindow {visible: truewidth: 800height: 600TextEdit {width: 240text: "Hello World!"font.family: "Helvetica"font.pointSize: 20color: "blue"focus: true}// 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)
// }// anchors.centerIn: parent
// }}
Qt文档阅读笔记-TextEdit QML Type官方解析及实例相关推荐
- Qt文档阅读笔记-FileDialog QML Type官方解析与实例
目录 官方解析 博主例子 官方解析 FileDialog是基于文件的选择器,可以选择文件或文件夹,创建文件,这个Dialog初始化是不可见的,得需要设置他为visible或调用open()即可. 下面 ...
- Qt文档阅读笔记-Text QML Type官方解析及实例
目录 官方解析 博主例子 官方解析 Text能够展示纯文本和富文本.举个例子,红色文本以及指定的字体和大小 Text {text: "Hello World!"font.famil ...
- Qt文档阅读笔记-Label QML Type官方解析及实例
目录 官方解析 博主例子 官方解析 Label扩展了父类Text中的styling和font.Label同样是有可视化的background项. Label {text: "Label&qu ...
- Qt文档阅读笔记-Button QML Type官方解析及实例
目录 官方解析 博主栗子 官方解析 按钮展示了一个按钮控件,这个控件可以被用户所按下,按钮是通常被用于执行一个操作,或者解决一个问题.buttons有如下几个典栗,如Ok,Apply,Cancel,C ...
- Qt文档阅读笔记-Timer QML Type 官方解析与实例
目录 官方解析 博主例子 官方解析 Timer能够触发一个动作,或者在给定时间重复这个动作: 下面给出显示当前时间的代码,500毫秒刷新异常,这里是通过JS对象来获取当前时间! import QtQu ...
- Qt文档阅读笔记-ToolBar QML Type
ToolBar主要用于应用程序的上下文控制,就像导航按钮和搜索按钮那样.ToolBar就像窗口程序的header或footer那样. ToolBar不提供自己的布局,不过需要开发者设置内容,如创建一个 ...
- Qt文档阅读笔记-GridLayout QML Type解析与实例
目录 基本概念 代码与实例 基本概念 如果QGridLaout大小被调整,所有item的布局都将会重新排列.和widget的QGridLayout一样.如果想要一行或一列的布局可以使用RowLayou ...
- Qt文档阅读笔记-Image QML官方解析与实例
目录 官方解析 博主例子 官方解析 Image Image用于展示图片. 使用source属性可以使用URL指定一张图片. 只要是Qt能打开的图片都支持,如果要展示动态图,要使用:BnimatedSp ...
- Qt文档阅读笔记-Simple Anchor Layout Example解析
这个例子展示了锚布局在视图场景中的使用. 此篇例子其实就是教QGraphicsAnchorLayout类的使用. 首先创建了QGraphicScene(场景),3个widgets(a,b,c),以及一 ...
最新文章
- python 检验数据正态分布程度_Python DataFrame 检验数据正态分布及平均值差异检验...
- 发现check_nginx.sh 里的一个小bug~~~
- linux apt qt下载,Linux如何安装 apt-get 软件管理工具
- https和server-status配置案例
- 单例-单例设计模式代码实现
- thymeleaf片段使用_Thymeleaf –片段和angularjs路由器局部视图
- linux shell脚本备份mysql数据库
- saas 困难_将不可信的Javascript作为SaaS运行非常困难。 这就是我驯服恶魔的方式。...
- 未来云原生世界的“领头羊”:容器批量计算项目Volcano 1.0版本发布
- Django框架配置
- Web笔记:jQuery的使用
- ADB连接手机的三种方式USB、WLAN、WIFI
- envi5.3处理高分二号影像数据详细过程记录
- 经常眩晕,可能是不痛的偏头痛
- 2020秋招笔试依图科技编程题
- PyautoGui常用教程(鼠标、键盘)
- C++并发编程(C++11到C++17)转载
- numpy的文件存储.npy .npz 文件详解
- NanoHTTPD----SimpleWebServer处理请求过程
- StarUML 代码生成(C++)