本文主要是介绍Qt Object 类简介--Qt 类简介专题(二) 第二页,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
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对象有这个函数的重新实现,把子类名作为上下文。
这篇关于Qt Object 类简介--Qt 类简介专题(二) 第二页的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!