初学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
废话不多说,直接上代码:
[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
相关文章推荐
- Qt的信号和槽是如何工作的
- Qt串口的使用记录
- 【QT相关】对话框相关
- QThread中的事件循环
- Qt悬浮窗
- QT实现文本编辑器软件
- QT实现文件查找显示列表功能
- Qt 无边框、透明、可移动、的个性窗体
- Qt中不规则窗体和部件的实现
- 用Qt实现窗体的无边框、可移动、透明不规则显示(需背景透明的图片)
- Qt 不规则窗体编程
- 【实例】Qt创建不规则窗体
- Windows下OpenCV+QT开发环境配置
- Qt 出现了 Qt error LNK2019: 无法解析的外部符号 "public: __thiscall 怎么解决
- 【QT相关】Image Viewer Example
- Qt Creator 窗体控件自适应窗口大小布局
- Qt 2D绘图
- 两种解决Qt5显示中文乱码的方法(使用QStringLiteral和#pragma execution_character_set("utf-8")两种方法)
- 隐藏鼠标指针
- Qtcreator中常用快捷键总结