首页| 论坛| 消息

标题:【摘录】《KDE2/Qt编程金典》第二章:创建并显示一个窗口——2.6 为一个信号定义slot
作者:XChinux
日期:2005-08-28 09:47
内容:

  为了让一个部件接收某个信号,它必须定义一个slot,并将此slot和某个信号相连接。下面的例子,显示了一个按钮和一个计数器,无论何时按下此按钮,计数器就加1,为了完成同样的工作需要做几件事情,不过Qt系统将会处理大部分的细节工作。特别需要指出的是,有一些特殊的宏和Meta对象编辑器(MOC, Meta Object Compiler)将自动处理大部分的细节工作。在这个例子中的main()函数很简单地创建并显示了此部件:
1 /* count.cpp */
2 #include
3 #include "clickcount.h"
4
5 int main(int argc, char **argv)
6 {
7 QApplication app(argc, argv);
8 ClickCount clickcount;
9 app.setMainWidget(&clickcount);
10 clickcount.show();
11 return(app.exec());
12 }
  ClickCount部件包含了一个按钮和一个标签。标签用来显示当前计数器的值:
1 /* clickcount.h */
2 #ifndef CLICKCOUNT_H
3 #define CLICKCOUNT_H
4
5 #include
6 #include
7
8 class ClickCount: public QWidget
9 {
10 Q_OBJECT
11 public:
12 ClickCount(QWidget *parent=0, const char *name=0);
13 public slots:
14 void incrementCounter();
15 private:
16 int counter;
17 QLabel *label;
18 QPushButton *button;
19 };
20
21 #endif
  在任何有slot的类中必须有第10行显示的宏Q_OBJECT(它也必须残存在于需要广播信号的类中,在第5章将学习到有关知识)。宏Q_OBJECT定义了一些标准方法,为了让信号和slot正常工作,它们必 ..


#1 [mathbox 10-14 10:25]
哦,明白了,呵呵,顶下天呐,感谢斑竹

回复 发表
主题 版块