#include "widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
{
b1.setParent(this);
b1.setText("shuaiTT");
b1.move(100,100);
b2 = new QPushButton(this);
b2->setText("pangRR");
b2->move(200,100);
connect(&b1,&QPushButton::pressed,this,&Widget::close);
// &b1:信号发出者 指针类型
// &QPushButton::pressed 处理的信号, &信号发出者的类名::信号类型
// this:信号接收者
// &Widget::close 槽函数,信号处理函数
/* 自定义槽 普通函数的用法*/
//QT:任意的成员函数,普通全局函数,静态函数
// 槽函数需要和信号一致
// 由于信号没有返回值 所以槽函数也没有返回值
connect(b2,&QPushButton::pressed,this,&Widget::my_slot);
}
void Widget::my_slot()
{
b2->setText("pangRR beauty...");
}
信号和槽是QT里面比较重要的部分
首先一个小的注意点,就是我们每次不可能都在主函数里写界面的编程,在上一篇里面也提到了另一种方式就是构造函数,所以采用了在构造函数中处理的方式。并且在头文件的类中定义了控件。
在信号与槽里,最重要的就是connect这个连接
connect(&b1,&QPushButton::pressed,this,&Widget::close);
// &b1:信号发出者 指针类型
// &QPushButton::pressed 处理的信号, &信号发出者的类名::信号类型
// this:信号接收者
// &Widget::close 槽函数,信号处理函数
其中有一种情况,当槽是自定义的
/* 自定义槽 普通函数的用法*/
//QT:任意的成员函数,普通全局函数,静态函数
// 槽函数需要和信号一致
// 由于信号没有返回值 所以槽函数也没有返回值
比如说我点完这个按钮是想跳出这个按键里其他的文字,
void Widget::my_slot()
{
b2->setText("pangRR beauty...");
}很简单的一个自定义函数
但是在今天编译过后,出现了问题,后来发现
在头文件的类中,没有加上这个自定义的槽函数,C++的一些基本知识在这里得到体现,融会贯通。