• 8936阅读
  • 3回复

【提问】qt3.1里怎佯做自编的信号函数? [复制链接]

上一主题 下一主题
离线clackflying
 

只看楼主 倒序阅读 楼主  发表于: 2005-09-07
【提问】qt3.1里怎佯做自编的信号函数?
qt3.1里怎佯做自编的信号函数?
4.0里又是怎样做呢?
[ 此贴被XChinux在2005-09-07 23:04重新编辑 ]
离线XChinux

只看该作者 1楼 发表于: 2005-09-07
以前怎样做,现在还怎样做。都是一样的。
在类里声明slots,并在实现里定义它。在别处使用connect来调用它。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线XChinux

只看该作者 2楼 发表于: 2005-09-07
下面是从Qt Reference中找出来的。

在类中定义signal和slot

#include <QObject>
  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
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线XChinux

只看该作者 3楼 发表于: 2005-09-08
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
快速回复
限100 字节
 
上一个 下一个