初学QT心得

来源:互联网 发布:达芬奇调色 mac 编辑:程序博客网 时间:2024/06/11 05:04

学习QT也有三四天了........总得写点东西,QT这几天给我的感觉是很好很强大。。。但总有那么一点点不习惯,应为我是基于学了点C++基础上开始学QT开发的,刚开始直接在QT creater上打代码一开始还好,但打的代码一多,运行出错就挺难找的错误,不太习惯,因为它没有纠错功能,后来我又在VS上打QT的代码,虽说这样习惯了点,但还是怪怪的,,应该用多了就会习惯。

在QT中信号和槽是QT的不可或缺的部分。信号和槽用于对象间的通讯。信号/槽机制是Qt的一个中心特征并且也许是Qt与其它工具包的最不相同的部分。

connect(&a, SIGNAL(valueChanged(int)), &b, SLOT(setValue(int)));
上面的一句话在QT开发中占据了举足轻重的地位,一个槽就是一个接收函数,用来获得其它窗口部件状态变或的信息。

所谓信号槽,简单来说,就像是插销一样:一个插头和一个插座。怎么说呢?当某种事件发生之后,比如,点击了一下鼠标,或者按了某个按键,这时,这个组件就会发出一个信号。就像是广播一样,如果有了事件,它就漫天发声。这时,如果有一个槽,正好对应上这个信号,那么,这个槽的函数就会执行,也就是回调。

当对象的内部状态发生改变,信号就被发射,在某些方面对于对象代理或者所有者也许是很有趣的。只有定义了一个信号的类和它的子类才能发射这个信号。 如果几个槽被连接到一个信号,当信号被发射时,这些槽就会被按任意顺序一个接一个地执行。 

当一个和槽连接的信号被发射的时候,这个操被调用。槽也是普通的C++函数并且可以像它们一样被调用;它们唯一的特点就是它们可以被信号连接。槽的参数不能含有默认值,并且和信号一样,为了槽的参数而使用自己特定的类型是很不明智的。

因为槽就是普通成员函数,但却有一点非常有意思的东西,它们也和普通成员函数一样有访问权限。一个槽的访问权限决定了谁可以和它相连:

原创粉丝点击