http://edu.csdn.net/course/detail/1042/14804?auto_start=1
Qt Quick 4小时入门
第五章:Qt Quick里的信号与槽
QML中的三种信号连接方式:
![](https://images2015.cnblogs.com/blog/311894/201609/311894-20160922144019309-329419139.jpg)
方式一:在组件内通过on<SignalName>的方式
importQtQuick2.0
importQtQuick.Window2.0;
Window{
id: win;
visible: true;
width: 300;
height: 200;
color: "black";
Text{
id: txt;
text:"hello,superSun";
font.pointSize:20;
color:"yellow";
}
//信号处理器的第一种写法(看样子就是其他语言中的事件)
onWidthChanged:{
txt.x=(win.width-txt.width)/2;
}
//信号处理器的第二种写法
onHeightChanged:heightChanged();
functionheightChanged(){
txt.y=(win.height-txt.height)/2;
}
}
注:
1、针对上面用到的字体大小的设置说明一下,在QFont当中有两种方式设置字体大小,一种是PixelSize,另一种是PointSize,Point实际是磅,也就是 1/72 inch。
pixel size 是所占的像素大小,这样有一个缺点,有些显示器的分辨率(dpi)比较大,那么单位长度中的像素点就比较多,这样一个字所占的长度就会比较少;而 point size 则规定了实际中我们肉眼看到的字体的大小,他和pixel无关,和显示器无关。
2、信号处理器,等价于Qt中的槽。
方式二:通过信号的connect方法
importQtQuick2.0
importQtQuick.Window2.0
importQtQuick.Controls2.0
Window{
id:win;
visible:true;
width:300;
height:200;
Button{
id:btn;
text:"Quit";
}
functionquitFunc(){
Qt.quit();
}
Component.onCompleted:{
btn.clicked.connect(quitFunc);// quitFunc后面不写括号
}
}
方式三:通过Connections
importQtQuick2.0
importQtQuick.Window2.0
importQtQuick.Controls2.0
Window{
id:win;
visible:true;
width:300;
height:200;
Button{
id:btn;
text:"Quit";
}
functionquitFunc(){
Qt.quit();
}
Connections{
target:btn;
onClicked:quitFunc(); // quitFunc后面写括号
}
}