QObject::connect示例一
2024-05-08
5
0
QObject::connect用于建立信号发送与响应机制,即谁发出什么消息,谁响应。其实有点类似的消息回调函数。
我里我们建立一个示例。
重载QLabel类为我们的QMyLabel类,并为之提供一个响应按钮按下时的响应函数,该函数为QMyLabel类的成员函数。
#include "mainwindow.h"
#include <QApplication>
#include <qlabel.h>
#include <windows.h>
#include <qpushbutton.h>
class QMyLabel:public QLabel
{
private:
int index;
public:
QMyLabel(const QString &text, QWidget *parent=nullptr, Qt::WindowFlags f=Qt::WindowFlags())
: QLabel(text,parent,f)
{
index = 0;
}
void OnButtonPush()
{
this->setNum(++index);
}
};
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
QMyLabel* plabel = new QMyLabel("1234556",&w);
plabel->move(200,0);
QPushButton* btn = new QPushButton("my button",&w);
btn->resize(100,50);
QObject::connect(btn,&QPushButton::clicked,plabel,&QMyLabel::OnButtonPush);
w.resize(400,200);
w.show();
return a.exec();
}
运行结果如下: