存档

文章标签 ‘信号和槽’

Qt学习笔记_Chapter1_2建立连接

2010年1月8日 mousefire 没有评论

  Windows7下程序运行效果图:

image   

  还记得MFC中,消息循环系统是每一个初学者都要费不少心思学习的东西,Qt中采用了一种完全不同的方式:信号和槽。还是从代码开始:

  1. #include <QApplication>
  2. #include <QPushButton>
  3. int main(int argc,char *argv[])
  4. {
  5.     QApplication app(argc,argv);
  6.     QPushButton *button=new QPushButton("Quit");
  7.     QObject::connect(button,SIGNAL(clicked()),
  8.         &app,SLOT(quit()));
  9.     button->show();
  10.     return app.exec();
  11. }

  这里使用了QPushButton作为应用程序的主窗口部件。

Line7,8:Qt的窗口部件通过发射信号(signal)来表明一个用户动作已经发生了或者是一个状态已经改变了。例如,当用户单击QPushButton时,该按钮就会发射一个clicked()信号。信号可以与函数(在这里称为槽,slot)相连接,以便在发射信号时,槽可以得到自动执行。这里把按钮的clicked信号和QApplication对象的quit()槽连接起来。宏SIGNAL()和SLOT()是Qt语法中的一部分。

BTW:QObject这个类是QT对象模型的核心,绝大部分的QT类都是从这个类继承而来,这个模型的中心特征就是一个叫做信号和槽的机制来实现对象间的通讯。所有的widget都是QT object,因为它们继承自QWidget,而Qwidget正是继承自QObject

分类: Qt学习笔记 标签: ,