Chinaunix首页 | 论坛 | 博客
  • 博客访问: 26911
  • 博文数量: 4
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 0
  • 用 户 组: 普通用户
  • 注册时间: 2016-06-19 02:51
个人简介

关注QT,单片机和LINUX内核开发。向往漫无目的、漫不经心的生活态度。喜欢中岛美雪更喜欢二手玫瑰。

文章分类
文章存档

2016年(4)

我的朋友

分类: C/C++

2016-04-13 20:33:01

在QT的信号/槽机制中,在slot中可以通过sender()函数获取信号发送者的指针,但在QML中并没有相应的机制,事实上,在QML中可以通过Javascript的闭包实现对sender的获取,以下是例子:

  1. import QtQuick 2.5
  2. import QtQuick.Controls 1.4
  3. import QtQuick.Layouts 1.2
  4. import QtQuick.Controls.Styles 1.4

  5. Item{
  6.     width:400
  7.     height:400
  8.     Row{
  9.         TextField{
  10.             id:textField1
  11.             text:"I'm textField1"
  12.         }
  13.         TextField{
  14.             id:textField2
  15.             text:"I'm textField2"
  16.         }

  17.     }
  18.     function activeFocusObserve(sender)
  19.     {
  20.         var _observefunc = function(actived){
  21.             if(actived)
  22.             {
  23.                 console.log(sender.text);
  24.                 sender.forceActiveFocus();
  25.             }
  26.         }
  27.         return _observefunc;
  28.     }
  29.     Component.onCompleted: {
  30.         textField1.onActiveFocusChanged.connect(activeFocusObserve(textField1));
  31.         textField2.onActiveFocusChanged.connect(activeFocusObserve(textField2));
  32.     }
  33. }



阅读(2376) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:使用C++实现QML的TreeView Model (一)

给主人留下些什么吧!~~