给Qt的控件添加新信号

来源:互联网 发布:手机录像软件 编辑:程序博客网 时间:2024/05/01 05:23

Qt的控件有时候并不提供我们想要的信号

已QLineEdit为例,它并没有提供鼠标点击的信号,此时就需要我们自己添加

方法如下:

mylineedit.h

#ifndef MYLINEEDIT_H#define MYLINEEDIT_H#include <QLineEdit>#include <QMouseEvent>class MyLineEdit : public QLineEdit{    Q_OBJECTpublic:    explicit MyLineEdit(QWidget *parent = 0);    protected:    virtual void mousePressEvent(QMouseEvent *event);signals:    void LineEditClicked();    public slots:    };#endif // MYLINEEDIT_H

mylineedit.cpp

#include "mylineedit.h"MyLineEdit::MyLineEdit(QWidget *parent) :    QLineEdit(parent){}void MyLineEdit::mousePressEvent(QMouseEvent *event){    if (event->button() == Qt::LeftButton)    {       emit LineEditClicked();    }    QLineEdit::mousePressEvent(event);}

这时MyLineEdit就是一个已经有了鼠标点击信号的QLineEdit,我们只需要向其他信号一样使用它就可以了


原创粉丝点击