在QT的信号/槽机制中,在slot中可以通过sender()函数获取信号发送者的指针,但在QML中并没有相应的机制,事实上,在QML中可以通过Javascript的闭包实现对sender的获取,以下是例子:
-
import QtQuick 2.5
-
import QtQuick.Controls 1.4
-
import QtQuick.Layouts 1.2
-
import QtQuick.Controls.Styles 1.4
-
-
Item{
-
width:400
-
height:400
-
Row{
-
TextField{
-
id:textField1
-
text:"I'm textField1"
-
}
-
TextField{
-
id:textField2
-
text:"I'm textField2"
-
}
-
-
}
-
function activeFocusObserve(sender)
-
{
-
var _observefunc = function(actived){
-
if(actived)
-
{
-
console.log(sender.text);
-
sender.forceActiveFocus();
-
}
-
}
-
return _observefunc;
-
}
-
Component.onCompleted: {
-
textField1.onActiveFocusChanged.connect(activeFocusObserve(textField1));
-
textField2.onActiveFocusChanged.connect(activeFocusObserve(textField2));
-
}
-
}
阅读(2472) | 评论(0) | 转发(0) |