Qt Object 类简介--Qt 类简介专题(二) 第二页

Qt 同时被 2 个专栏收录
48 篇文章 0 订阅
43 篇文章 13 订阅

Qt Object 类简介--Qt 类简介专题(二)

 

2、和connect 成双成对的disconnect

取消从sender对象发送的signal和对象receiver中的member的连接。

当这两个有关对象中的一个被销毁时,这个信号——槽连接就被移除了。

disconnect()通常被用在三种方式下,正如下面的例子所描述的。

1. 取消连接到一个对象的信号的任何事物:

disconnect( myObject, 0, 0, 0 );

等于非静态重载函数

myObject->disconnect();

 

2. 取消连接到一个特定信号的任何事物:

disconnect( myObject, SIGNAL(mySignal()), 0, 0 );

等于非静态重载函数

myObject->disconnect( SIGNAL(mySignal()) );

 

3. 取消一个特定接收者的所有连接:

disconnect( myObject, 0, myReceiver, 0 );

等于非静态重载函数

myObject->disconnect( myReceiver );

0可以用做一个通配符,意义可能分别为“任何信号”、“任何接受对象”或者“一个接受对象中的任何槽”。

sender不能为0。(你不能在一个调用中取消来自多于一个对象的信号的连接。)

如果signal为0,它取消所有和这个对象的信号连接的receiver和member。如果不是,只由特定信号被取消联接。

如果receiver为0,它取消连接到signal的任何事物。如果不是,只有receiver中的槽被取消连接。

如果member为0,它取消连接到receiver的任何事物。如果不是,只有名为member的槽被取消联接并且其它所有槽被保留。如果receiver被省去,member必须为0,所以你不能取消所有对象中同一特定名称槽的连接。

 

3、installEventFilter的使用

void QObject::installEventFilter ( const QObject * obj )

安装事件过滤器obj到这个对象。

事 件过滤器就是接收所有被发送到这个对象的事件的对象。这个过滤器可以停止事件或者把它再转给这个对象。事件过滤器obj通过它的 eventFilter()函数来接收事件。如果事件被过滤了(比如,停止了),eventFilter()函数必须返回真,否则它必须返回假。

如果有多个事件过滤器被安装到同一个对象上,最后一个被安装的事件过滤器将先被激活。

实例:

例如,QAccel类使用这种技术来截取快捷键被按下。

警告:如果在你的eventFilter()函数中你删除了接收对象,请确认返回真。否则,Qt会把这个事件转给被删除的对象并且程序也许会崩溃。

 

4、tr国际化使用

QString QObject::tr ( const char * sourceText, const char * comment ) const

返回sourceText的翻译版本,或者如果没有合适的版本返回sourceText它自己。翻译上下文是comment的QObject(默认为空)。所有使用Q_OBJECT宏的QObject对象有这个函数的重新实现,把子类名作为上下文。

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值