lect01-Qt信号槽.ppt

* 信号槽机制链接ui对象。 * 信号和槽的一个常见场景是同步一对部件。 这是由两个互连的对象实现的。(参考例子)。如果dial1的值发生变化,它会发出valueChanged, 使到dial2的值改变,而这个改变会发出valueChanged,使到dial1的值改变,如此反复…… 为避免无限循环(其结果是无尽的循环,使到堆栈增长到溢出内存而悲惨地崩溃),setValue函数会忽略设置当前值的尝试。 * 要向类里添加自定义信号和槽很容易。 你可以为多种原因添加槽。比如,为每一个以及所有可能的用户动作(文件打开,保存,关闭,复制,剪切,粘帖,帮助,关于)。Setter函数也会构造自然槽。 添加槽仅仅是把你的函数放进正确的声明段中而已。 增加信号一样简单,仅需在信号段中声明它们。 如果你有属性,按惯例要用Q_PROPERTY宏把信号通知Qt。 待续 * 实现槽就像实现普通函数。但是你绝不能忘记无限循环保护。 发射信号就像调用emit signalName(arguments)那么简单。 当发射信号时,确保首先更新内部状态,以便在取信息之前你的对象是最新的。 * 当使用信号和槽的时候,一个通用场景是需要用信号传递一个值,而实际的信号却没有携带所需要的值。 比如,由QPushButtons创建的键盘。 由于两个问题导致它无效: 槽签名无效(不能带数值) 连接不能带参数

文档评论(0)

1亿VIP精品文档

相关文档