-
opacity
是一个继承属性,也就是说,父项目的透明度也会应用到子项目上,大多数情况下,这会产生想要的结果。
比如下面的代码会使红色和蓝色矩形块都透明,只想蓝色透明怎么办?把opacity:0.5
属性挪到蓝色矩形框下即可。
import QtQuick 2.2
Item{
Rectangle{
opacity:0.5
color:"red"
width:100;height:100
Rectangle{
color:"blue"
x:50;y:20;width:100;height:100
}
}
}
-
QtObject
是一个非可视化的元素,它只包含objectName
属性。QtObject
一般用于封装一组自定一的属性方便用于参数设置。例如:
import QtQuick 2.0
QtObject {
id: settings
// These are used to scale fonts according to screen size
property real _scaler: 300 + mainWindow.width * mainWindow.height * 0.00010
property int fontXS: _scaler * 0.032
property int fontS: _scaler * 0.045
property int fontM: _scaler * 0.050
property int fontMM: _scaler * 0.070
property int fontL: _scaler * 0.100
}
-
一个项目可以通过设置其
focus
属性为true来使其获得焦点。一般情况下,使用focus
属性就足够了。例如:
import QtQuick 2.2
Rectangle{
color:"lightsteelblue";width:240;height:200
Text{id:myText}
Item{
id:keyHandler
focus:true
Keys.onPressed:{
if(event.key == Qt.Key_A)
myText.text = 'Key A was pressed'
else if(event.key == Qt.Key_B)
myText.text = "Key B was pressed"
else if(event.key == Qt.Key_C)
myText.text = 'Key C was pressed'
}
}
}
-
Q_PROPERTY宏用来定义可通过元对象系统访问的属性,通过它定义的属性,可以在QML中访问,修改,也可以在属性变化时发射特定的信号。例子:
Q_PROPERTY(type name)
其中:
READ:如果你没有为属性指定
MEMBER
标记,则READ
标记必不可少;声明一个读取属性的函数,该函数一般没有参数,返回定义的属性。WRITE :可选配置。声明一个设定属性的函数。它指定的函数没有返回值,只能有一个与属性类型匹配的参数 。
NOTIFY :可选配置。给属性关联一个信号(该信号必须是已经在类中声明过的),当属性的值发生变化时就会触发该信号。信号的参数,一般就是你定义的属性。
-
C++ 中引用的作用,这也是在学习Qt 中发现的与C不同的地方,补充下基础知识。
void SqlTableModel::setSqlTitle(const QStringList &title)
{
m_sqlTitle = title;
emit sqlTitleChanged(title);
}
其中形参前修饰符“&”,表示“引用”
C++之所以增加引用类型, 主要是把它作为函数参数,以扩充函数传递数据的功能。
C++ 函数传参:
(1)将变量名作为实参和形参。这时传给形参的是变量的值,传递是单向的。如果在执行函数期间形参的值发生变化,并不传回给实参。因为在调用函数时,形参和实参不是同一个存储单元。// 同 c(
2) 传递变量的指针。形参是指针变量,实参是一个变量的地址,调用函数时,形参(指针变量)指向实参变量单元。这种通过形参指针可以改变实参的值。// 同 c
(3) C++提供了 传递变量的引用。形参是引用变量,和实参是一个变量,调用函数时,形参(引用变量)指向实参变量单元。这种通过形参引用可以改变实参的值。