初学Qt之--带参数的信号和槽的实现(入门级)

来源:互联网 发布:魔法王座升阶数据汇总 编辑:程序博客网 时间:2024/06/06 13:08

初次接触Qt,由于只有C语言的基础,弄起来很是头疼。下面这个Qt带参数的信号与槽的实例仅供入门之用,高手免观(Qt 4.4.0 实现)

废话不多说,直接上代码:

/*********MyMainWindows.h**************/#ifndef MYMAINWINDOWS_H_    #define MYMAINWINDOWS_H_    #include <QWidget>                            #include <QPushButton>                       #include <QLineEdit>                          #include <QLabel>      //申明一个MyMainWindows类,这个类用于实现窗体                          class MyMainWindows:public QWidget           {                                                           Q_OBJECT //Q_OBJECT是在定制信号和槽和必须包含的一条宏语句                                 public:                                                           MyMainWindows();   //类构造函数(用于实现程序的主体部份)                      public slots:          //所有的槽函数都必须申明public slots语句内                               void SlotTest(); //这个槽函数用于显应点击按钮时改变文本框内容                      private:        QPushButton * pb;  //申请一个按钮QPushButton                           QLineEdit * ledit; //申请一个文本框ledit                             QLabel * label;    //申请一个文本标签label                           signals:              //所有信号都需要申明在signals语句内                         void SigTest(QString text);   //自定义的带参数的信号SigTest(QString text)。                         };     #endif    

/*************MyMainWindows.cpp****************/#include "MyMainWindows.h"MyMainWindows::MyMainWindows(){  setGeometry(90,90,300,200);  pb = new QPushButton("Modify",this);  pb->setGeometry(10,10,100,20);  ledit = new QLineEdit("what's your name",this);  ledit->setGeometry(10,30,200,150);  label = new QLabel("I am a Label",this);       label->setGeometry(115,10,100,20);  connect(pb,SIGNAL(clicked()),this,SLOT(SlotTest()));      //连接自定义信号SigTest(QString)和QLineEdit中的预定义槽setText(QString)  connect(this,SIGNAL(SigTest(QString)),ledit,SLOT(setText(QString))); } //实现用于接受pb点击信号的槽   void MyMainWindows::SlotTest()                     {  label->setText("clicked");    //发送自定义的信号,请注意信号的参数类型和个数要和槽一样  emit SigTest("Hello,I am Keyunchuan");   }

/**************Main.cpp**************/#include <QApplication>           //所有QT应用程序都要包含QApplication头文件   #include "MyMainWindows.h"              int main(int argc,char * argv[]){  QApplication app(argc,argv);    //申明一个QT应用程序对像app      MyMainWindows w;                //申明我们实现MyMainWindows窗体对像 w.        w.show();                       //显示这个w 窗体           return app.exec();}

然后附上运行时截图:


点击pb后


谢谢围观,如有改进之处,敬请留言。

(----------完---------)

原创粉丝点击