Qt教程
+ -

QT控件事件与事件响应函数关联

2024-05-07 3 0

我们在上面的代码中,本来相对QLabel标签加一个点击事件了,但发现标签没有点击事件。

差评,MFC就是可以的。

所以,我们只能引入QPushButton控件来实现了。

#include "mainwindow.h"

#include <QApplication>
#include <qlabel.h>
#include <windows.h>
#include <qpushbutton.h>


DWORD WINAPI ThreadDo(LPVOID lp)
{
    QLabel* plabel = ( QLabel*)lp;
    for(int i=0;;i++)
    {
      //  plabel->move(i%100,0);
        Sleep(200);
    }
}

void OnMyButton()
{
    ::MessageBoxA(NULL,"hello my button!","tips",MB_OK);
}

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;

    QLabel* plabel = new QLabel("站长漫谈-pnpon.com",&w);
    plabel->move(100,100);
    plabel->resize(200,30);

    QPushButton* btn = new QPushButton("my button",&w);
    btn->resize(100,50);

    QObject::connect(btn,&QPushButton::clicked,OnMyButton);

    w.resize(400,400);
    w.show();
    HANDLE h = CreateThread(NULL,0,ThreadDo,(LPVOID)plabel,0,NULL);
    CloseHandle(h);

    return a.exec();
}

我们在界面中多创建了一个按钮,类型为QPushButton,使用 QObject::connect来关联事件:

    QObject::connect(btn,&QPushButton::clicked,OnMyButton);

可以看到,第一个参数是需要关联的控件指针。第二个参数是控件的事件类型。第三个是响应函数。
运行后结果如下:
163916452665

0 篇笔记 写笔记

作者信息
我爱内核
Windows驱动开发,网站开发
好好学习,天天向上。
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!