您的位置:首页 > 编程语言 > Qt开发

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

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

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

[cpp] view
plaincopy

/*********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

[cpp] view
plaincopy

/*************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");

}

[cpp] view
plaincopy

/**************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后



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

FROM: http://blog.csdn.net/zgrjkflmkyc/article/details/8516452
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: