首页| 论坛| 消息

标题:【提问】qt3.1里怎佯做自编的信号函数?
作者:clackflying
日期:2005-09-07 21:27
内容:

qt3.1里怎佯做自编的信号函数?
4.0里又是怎样做呢?


#1 [XChinux 09-07 23:01]
以前怎样做,现在还怎样做。都是一样的。
在类里声明slots,并在实现里定义它。在别处使用connect来调用它。
#2 [XChinux 09-07 23:04]
下面是从Qt Reference中找出来的。
在类中定义signal和slot
#include
class Counter : public QObject
{
Q_OBJECT
public:
Counter() { m_value = 0; }
int value() const { return m_value; }
public slots:
void setValue(int value);
signals:
void valueChanged(int newValue);
private:
int m_value;
};
在实现中实现slot,并使用signal
void Counter::setValue(int value)
{
if (value != m_value) {
m_value = value;
emit valueChanged(value);
}
}
在别处需要的地方将signal和slot关联起来
Counter a, b;
QObject::connect(&a, SIGNAL(valueChanged(int)),
&b, SLOT(setValue(int)));
a.setValue(12); // a.value() == 12, b.value() == 12
b.setValue(48); // a.value() == 12, b.value() == 48
#3 [XChinux 09-08 00:32]
楼主参考这个帖子
http://www.qtcn.org/bbs/read.php?tid=1139

回复 发表
主题 版块