Qt对象是具有实用功能,性能和枚举一个全局对象。它不是可实例化的; 使用它,直接调用全局Qt对象的成员。
本文: https://www.lovejia.win/blog/article/Qt.html
参考原文:http://doc.qt.io/qt-5/qml-qtqml-qt.html
属性说明
application : object
该application对象提供对许多QML组件共享的全局应用程序状态属性的访问。
其属性为:
application.active 不推荐使用Qt.application.state == Qt.ApplicationActive。
application.state 此只读属性指示应用程序的当前状态。可能的值为:
- Qt.ApplicationActive - 应用程序是最顶层和专注的应用程序,用户能够与应用程序交互。
- Qt.ApplicationInactive - 应用程序可见或部分可见,但未选择在前面,用户不能与应用程序交互。在桌面平台上,这通常意味着用户激活了另一个应用程序。在移动平台上,更常见的情况是,当操作系统中断用户时,例如来电,短信或对话等,进入此状态。这通常是应用程序暂停期间的暂时状态。用户可能会将焦点返回到您的应用程序,但大多数时间它将是应用程序将被暂停的第一个指示。在此状态下,请考虑暂停或停止用户无法与您的应用进行互动(如视频,游戏,动画或传感器)时不应继续的任何活动。您还应该避免执行CPU密集型任务,这可能会降低应用程序的速度。
- Qt.ApplicationSuspended - 应用程序已暂停,对用户不可见。在移动平台上,当用户返回到主屏幕或切换到另一个应用程序时,应用程序通常进入此状态。在此状态下,应用程序应确保用户将其感知为始终存活,并且不会丢失其进度,从而节省任何持久数据。应用程序应该停止所有活动,并准备代码执行停止。暂停时,可以随时终止应用程序,而无需进一步警告(例如,当内存不足导致操作系统清除挂起的应用程序时)。
- Qt.ApplicationHidden - 应用程序被隐藏并在后台运行。这是需要做后台处理的应用程序的正常状态,例如播放音乐,而用户与其他应用程序交互。进入此状态时,应用程序应释放所有图形资源。Qt Quick应用程序通常不应该在QML级别处理此状态。相反,您应该卸载整个UI,并在应用程序再次变为活动状态时重新加载QML文件。
application.layoutDirection 此只读属性可用于查询应用程序的默认布局方向。在系统启动时,默认布局方向取决于应用程序的语言。该属性Qt.RightToLeft在语言环境中具有值,其中从右到左读取文本和图形元素,并且Qt.LeftToRight其中读取方向从左向右流动。您可以绑定到此属性以自定义应用程序布局,以支持两种布局方向。可能的值为:
- Qt.LeftToRight - 文本和图形元素应从左到右定位。
- Qt.RightToLeft - 文本和图形元素应从右到左定位。
application.font 此只读属性保留由QGuiApplication :: font()返回的默认应用程序字体。
application.arguments 这是可执行文件调用的参数的字符串列表。
application.name 这是在QCoreApplication实例上设置的应用程序名称。可以写入此属性以设置应用程序名称。
application.version 这是在QCoreApplication实例上设置的应用程序版本。可以写入此属性以设置应用程序版本。
application.organization 这是在QCoreApplication实例上设置的组织名称。可以写入此属性以设置组织名称。
application.domain 这是在QCoreApplication实例上设置的组织域。可以写入此属性以设置组织域。
application.supportsMultipleWindows 此只读属性可用于确定平台是否支持多个窗口。例如,一些嵌入式平台不支持多个窗口。
对象也有一个信号aboutToQuit(),它与QCoreApplication::aboutToQuit()相同。
inputMethod : object
该inputMethod对象允许访问应用程序的QInputMethod对象及其所有属性和插槽。
platform : object
该platform对象提供有关基础平台的信息。
其属性为:
platform.os 此只读属性包含操作系统的名称。
可能的值为:
“android” - Android
“blackberry” - BlackBerry操作系统
“ios” - iOS
“tvos” - tvOS
“linux” - Linux
“osx” - macOS
“unix” - 其他基于Unix的操作系统
“windows” - Windows
“winrt”- WinRT / UWP
“winphone” - Windows Phone
styleHints : object
该styleHints对象提供特定于平台的样式提示和设置。
注意:该styleHints对象仅在使用Qt Quick模块时可用。
方法说明
string atob(data)
ASCII到二进制 - 此函数解码base64编码数据字符串并返回。
binding(function)
返回表示属性绑定的JavaScript对象。函数有两个主要用例:首先,从JavaScript代码中强制应用一个属性绑定;其次,在初始化动态构造的对象的属性值时(通过Component.createObject()或Loader.setSource())应用属性绑定。
注意:在Qt Quick 1中,所有功能分配都被视为绑定分配。Qt.binding()函数是Qt Quick 2的新功能。
string btoa(data)
二进制到ASCII - 此函数返回一个base64编码data。
callLater(function,argument1,argument2,…)
使用此功能可消除对功能或信号的冗余调用。
该函数作为第一个参数传递给Qt。callLater()将在稍后调用,一旦QML引擎返回事件循环。
当此函数被快速连续调用多次,并且函数的第一个参数相同时,该函数只被调用一次。任何其他参数传递给Qt。callLater()将被传递到被调用的函数。
注意:如果消除冗余调用,则只有最后一组参数将被传递给函数。
callLater(function)
使用此功能可消除对功能或信号的冗余调用。
作为Qt.callLater()的第一个参数传递的函数将在稍后调用,一旦QML引擎返回事件循环。
当此函数被快速连续调用多次,并且函数的第一个参数相同时,该函数只被调用一次。传递给Qt.callLater()的任何其他参数都将传递到所调用的函数。
注意:如果消除冗余调用,则只有最后一组参数将被传递给函数。
color colorEqual(color lhs,string rhs)
如果both lhs和rhsyield相等的颜色值,则返回true 。两个参数可以是颜色值或字符串值。如果提供了字符串值,则必须将其转换为颜色,如针对color基本类型所述。
object createComponent(url,mode,parent)
返回使用指定url处的QML文件或者如果给出空字符串创建的组件对象或null。
返回的组件的Component::status属性指示组件是否已成功创建。如果状态为Component.Error,参阅Component :: errorString()获取错误说明。
如果可选模式参数设置为Component.Asynchronous,组件将被加载到后台线程中。该Component::status属性将Component.Loading被加载时。Component.Ready如果组件成功加载或Component.Error加载失败,状态将更改为。Component.PreferSynchronous如果省略此参数,则默认为。
如果mode设置为Component.PreferSynchronous,Qt将尝试同步加载组件,但如果需要可能会异步加载它。可能导致异步加载的情况包括但不限于以下情况:
*URL是指网络资源
*组件正在作为正在异步加载的另一个组件的结果而创建
如果给出了可选的父参数,它应该引用将成为创建的Component对象的父对象的对象。如果没有传递任何模式,这可以是第二个参数。
在返回的组件上调用Component.createObject()以创建组件的对象实例。
object createQmlObject(string qml, object parent, string filepath)
返回从给定的qml字符串创建的新对象,该对象将具有指定的父对象,或者null在创建对象时出现错误。
如果指定了filepath,它将用于创建对象的错误报告。
注意:此函数会立即返回,因此如果qml字符串加载新组件(即尚未加载的外部QML文件),该函数可能无法正常工作。如果是这种情况,请考虑使用Qt.createComponent()。
color darker(color baseColor, real factor)
返回一个由factor提供比baseColor深的颜色。
如果因子大于1.0,则此函数返回较暗的颜色。设置因子为3.0返回具有亮度三分之一的颜色。如果因子小于1.0,返回颜色更浅,但我们建议使用Qt。lighter()函数。如果因子为0或负数,则返回值未指定。
该函数将当前RGB颜色转换为HSV,按值除以值(V)分量,并将颜色转换回RGB。
如果factor未提供,则返回比baseColor(因子2.0)暗50%的颜色。
exit(int retCode)
这个函数导致发出QQmlEngine::exit(int)信号。在使用qmlscene的Prototyping中,这将导致启动程序应用程序退出指定的返回代码。当调用此方法时,要使用指定的返回代码退出事件循环,C++应用程序可以将QQmlEngine::exit(int)信号连接到QCoreApplication::exit(int)。
font(object fontSpecifier)
返回具有fontSpecifier对象中指定的属性或最接近的匹配字体的字体。该fontSpecifier对象应包含其中,有效密钥是键-值对字体类型的子属性名称和值对每个子属性的有效值。无效的键将被忽略。
list < string > fontFamilies()
返回应用程序可用的字体系列的列表。
string formatDate(datetime date,variant format)
返回字符串表示形式date,可选择根据格式化format。
该日期参数可以是一个JavaScript Date对象,日期属性,一个QDATE或QDateTime值。格式参数可以是任何可能的格式的值的Qt.formatDateTime() 。
如果未指定格式,则使用Qt.DefaultLocaleShortDate 格式化日期。
string formatDateTime(datetime dateTime,variant format)
返回字符串表示形式datetime,可选择根据格式化format。
该日期参数可以是一个JavaScript Date对象,日期属性,一个QDATE,QTIME或QDateTime值。
如果未提供格式,则使用Qt.DefaultLocaleShortDate格式化dateTime。否则,格式应为:
*一个QT::DateFormat枚举值,如Qt.DefaultLocaleShortDate或Qt.ISODate
*一个字符串,指定返回的字符串的格式,如下所述。
如果format指定格式字符串,则应使用以下表达式指定日期:
表达 输出
d —— 日期作为无前导零的数字(1到31)
dd —— 日期作为带前导零的数字(01到31)
ddd —— 缩写的本地化日期名称(例如“Mon”到“Sun”)。使用QDate :: shortDayName()。
dddd —— 长本地化日期名称(例如“星期一”到“ Qt ::星期日 ”)。使用QDate :: longDayName()。
M —— 月份作为无前导零的数字(1-12)
MM —— 月份作为前导零的数字(01-12)
MMM —— 缩写的本地化月份名称(例如“Jan”到“Dec”)。使用QDate :: shortMonthName()。
MMMM —— 长的本地化月份名称(例如“1月”到“12月”)。使用QDate :: longMonthName()。
yy —— 年份为两位数字(00-99)
yyyy —— 年份为四位数字
此外,以下表达式可用于指定时间:
表达 输出
H —— 没有前导零的小时(如果AM / PM显示,则为0到23或1到12)
hh —— 具有前导零的小时(如果AM / PM显示,则为00到23或01到12)
m —— 没有前导零的分钟(0到59)
mm —— 分钟,前导零(00到59)
s —— 第二个没有前导零(0到59)
ss —— 第二个具有前导零(00到59)
z —— 无前导零的毫秒(0至999)
zzz —— 带前导零的毫秒(000到999)
AP —— 使用AM / PM显示屏。AP将被“AM”或“PM”替换。
ap —— 使用am / pm显示。ap将由“am”或“pm”替换。
所有其他输入字符将被忽略。用单引号括起的任何字符序列将被视为文本,不能用作表达式。两个连续的单引号(“’’”)由输出中的单引号替换。
string formatTime(datetime time,variant format)
返回字符串表示形式time,可选择根据格式化format。
在时间参数可以是一个JavaScript Date对象,QTIME或QDateTime值。格式参数可以是任何可能的格式的值的Qt.formatDateTime() 。
如果未指定format,则使用Qt.DefaultLocaleShortDate 格式化时间。
color hsla(real hue, real saturation, real lightness, real alpha)
返回与所指定的颜色hue,saturation,lightness和alpha组件。所有组件应在0-1范围内。
color hsva(real hue, real saturation, real value, real alpha)
返回与所指定的颜色hue,saturation,value和alpha组件。所有组件应在0-1范围内。
object include(string url,jsobject callback)
包含另一个JavaScript文件。此方法只能在JavaScript文件中使用,而不能用于常规QML文件。
这会将所有函数从url导入当前脚本的命名空间。
Qt.include()返回一个描述操作状态的对象。对象具有单个属性,,status它设置为以下值之一:
符号 值 描述
result.OK —— 0 —— 包含已成功完成。
result.LOADING —— 1 —— 正在从网络加载数据。
result.NETWORK_ERROR —— 2 —— 获取网址时出现网络错误。
result.EXCEPTION —— 3 —— 执行包含的代码时发生JavaScript异常。exception在这种情况下将设置一个附加属性。
该status属性将随着操作进度而更新。
如果提供,则在操作完成时调用回调。回调传递与Qt.include()调用返回的对象相同的对象。
bool isQtObject(object)
返回true如果object是对Qt或QML对象的有效引用,否则返回false。
color lighter(color baseColor, real factor)
返回一个factor提供的比baseColor浅的颜色。
如果因子大于1.0,则此函数返回较浅的颜色。设置因子为1.5返回一个比50%亮的颜色。如果因子小于1.0,返回颜色更暗,但我们建议使用Qt。darker()函数。如果因子为0或负数,则返回值未指定。
该函数将当前RGB颜色转换为HSV,按值乘以值(V)分量,并将颜色转换回RGB。
如果factor不提供,返回比baseColor(因子1.5)轻50%的颜色。
locale(name)
返回表示具有指定名称的语言环境的JS对象,其格式为“language [_territory] [.codeset] [@ modifier]”或“C”,其中:
*语言是一个小写,两个字母,ISO 639语言代码,
*区域是大写,两个字母,ISO 3166国家/地区代码,
*并忽略代码集和修饰符。
如果字符串违反语言环境格式,或语言不是有效的ISO 369代码,则使用“C”语言环境。如果国家/地区不存在或不是有效的ISO 3166代码,则为指定的语言选择最合适的国家/地区。
string md5(data)
返回md5散列的十六进制字符串data。
matrix4x4(real m11, real m12, real m13, real m14, real m21, real m22, real m23, real m24, real m31, real m32, real m33, real m34, real m41, real m42, real m43, real m44)
返回具有指定值的Matrix4x4。或者,可以使用单个参数调用该函数,其中该参数是包含十六个矩阵值的JavaScript数组。最后,可以不使用参数来调用函数,并且所得到的矩阵将是单位矩阵。
bool openUrlExternally(url target)
尝试target根据用户的桌面首选项在外部应用程序中打开指定的网址。如果成功返回true,否则返回false。
警告:返回值true表示应用程序已成功请求操作系统打开外部应用程序中的URL。外部应用程序可能仍然无法启动或无法打开请求的URL。此结果不会报告回应用程序。
point point(int x, int y)
返回具有指定x和y坐标的点。
string qsTr(string sourceText,string disambiguation,int n)
返回的翻译版本sourceText,任选基于消歧的字符串和数值Ñ含有复数串; 否则返回sourceText本身,如果没有适当的翻译字符串可用。
如果相同的源文本在相同的翻译上下文中用于不同的角色,则可以传递附加的标识字符串以用于消歧。
string qsTrId(string id,int n)
返回由id标识的翻译字符串。如果没有找到匹配的字符串,则返回id本身。这不应在正常条件下发生。
如果n > = 0,则%n在结果字符串中的所有出现被替换为n的十进制表示。另外,根据n的值,翻译文本可以变化。
string qsTrIdNoOp(string id)
标志编号为动态翻译。返回id。
QT_TRID_NOOP与动态翻译函数qsTrId()结合使用。它将字符串标识为需要翻译(因此可以通过标识lupdate),但将实际的翻译留给qsTrId()。
string qsTrNoOp(string sourceText,string disambiguation)
标记sourceText进行动态翻译; 即,存储的源文本将不被改变。
如果相同的源文本在相同的翻译上下文中用于不同的角色,则可以传递附加的标识字符串以用于消歧。
返回sourceText。
QT_TR_NOOP与动态翻译函数qsTr()和qsTranslate()一起使用。它将字符串标识为需要翻译(因此可以通过标识lupdate),但将实际的翻译留给动态函数。
string qsTranslate(string context,string sourceText,string disambiguation,int n)
返回的翻译版本sourceText在给定范围内的上下文,任选基于消歧串和价值Ñ含有复数串; 否则返回sourceText本身,如果没有适当的翻译字符串可用。
如果相同的源文本在相同的翻译上下文中用于不同的角色,则可以传递附加的标识字符串以用于消歧。
string qsTranslateNoOp(string context,string sourceText,string disambiguation)
标记sourceText在给定的动态翻译上下文 ; 即,存储的源文本将不被改变。
如果相同的源文本在相同的翻译上下文中用于不同的角色,则可以传递附加的标识字符串以用于消歧。
返回sourceText。
QT_TRANSLATE_NOOP与动态翻译函数qsTr()和qsTranslate()一起使用。它将字符串标识为需要翻译(因此可以通过标识lupdate),但将实际的翻译留给动态函数。
quaternion(real scalar, real x, real y, real z)
返回一个四元数与指定的scalar,x,y,和z。
quit()
这个函数导致发出QQmlEngine::quit()信号。在使用qmlscene的Prototyping中,这会导致启动器应用程序退出; 当调用此方法时退出C++应用程序,将QQmlEngine::quit()信号连接到QCoreApplication :: quit()。
rect rect( int x, int y, int width, int height)
返回rect左上角的a x,y以及指定的width和height。
返回的对象有x,y,width并height用给定的属性值。
url resolvedUrl(url url)
返回相对于调用者的URL解析的url。
color rgba(real red, real green, real blue, real alpha)
返回与所指定的颜色red,green,blue和alpha组件。所有组件应在0-1范围内。
size(int width,int height)
返回具有指定的width和height的大小。
color tint(color baseColor, color tintColor)
此功能允许使用另一种颜色来着色。
色调通常应该大部分是透明的,否则将无法看到底色。
vector2d(real x,real y)
返回具有指定的x和的Vector2D y。
vector3d(real x,real y,real z)
返回具有指定的x,y和的Vector3D z。
vector4d(real x,real y,real z,real w)
返回Vector4D使用指定的x,y,z和w。
功能简述
Qt对象是具有实用功能,性能和枚举一个全局对象。它不是可实例化的; 使用它,直接调用全局Qt对象的成员。
Qt对象包含Qt命名空间中可用的枚举。例如,可以访问Qt :: LeftButton和Qt :: RightButton枚举值作为Qt.LeftButton和Qt.RightButton。
Qt对象还包含用于创建特定数据类型的对象的帮助函数。
例
下面的例子使用Qt对象,直接调用全局Qt对象的成员:
1 | import QtQuick 2.0 |
以下示例使用该application对象指示应用程序当前是否处于活动状态:
1 | import QtQuick 2.0 |
注意:当使用QML而不使用QGuiApplication时,以下属性将未定义:
application.active
application.state
application.layoutDirection
application.font
以下示例使用styleHints对象来确定项目是否应该在鼠标按下或触摸释放上获得焦点:
1 | import QtQuick 2.4 |
一下示例函数有两个主要用例:首先,从JavaScript代码中强制应用一个属性绑定:
1 | Item { |
其次,在初始化动态构造的对象的属性值时(通过Component.createObject()或Loader.setSource())应用属性绑定。
例如,假设存在DynamicText组件:
1 | import QtQuick 2.0 |
输出:
1 | Item { |
来自:
1 | Item { |
此函数不能在属性绑定声明中使用(请参阅绑定声明和绑定分配的文档),除非结果存储在与var属性绑定的数组中:
1 | Item { |
注意:在Qt Quick 1中,所有功能分配都被视为绑定分配。Qt.binding()函数是Qt Quick 2的新功能。
以下示例任何其他参数传递给Qt.callLater()将被传递到被调用的函数:
1 | import QtQuick 2.0 |
以下示例在返回的组件上调用Component.createObject()以创建组件的对象实例:
1 | import QtQuick 2.0 |
以下示例通过使色调为纯红色而仅提供1/16不透明度,从而提供轻微的红色色调:
1 | Item { |