感谢经历、 2022-03-24 17:43 采纳率: 67.9%
浏览 311
已结题

如何重写qt的clicked信号

如何重写qt的clicked信号,*如何重写qt的clicked信号,如/何重写qt/的clicked信号,

  • 写回答

2条回答 默认 最新

  • 单北斗SLAMer 计算机视觉领域新星创作者 2022-03-24 18:10
    关注

    定义头文件mylineedit.h

    #ifndef MYLINEEDIT_H
    #define MYLINEEDIT_H
    
    #include <QObject>
    #include <QLineEdit>
    #include <QMouseEvent>
    class MyLineEdit : public QLineEdit
    {
        Q_OBJECT
    public:
        explicit MyLineEdit(QWidget *parent = NULL);
        void init();
    protected:
        void mousePressEvent(QMouseEvent *event);//重写mousePressEvent
    signals:
        void clicked();//clicked信号
    

    源文件(mylineedit.cpp)

     MyLineEdit:: MyLineEdit(QWidget *parent) :
        QLineEdit(parent)
    {
        this->setEchoMode(BoxPswLineEdit::Password);//默认输入格式为密文,根据需求添加默认属性
    }
    //重写事件过滤器
    void MyLineEdit::MyLineEdit(QMouseEvent * event)
    {
    
        if (event->button() == Qt::LeftButton)//鼠标点击左键就会触发信号,根据需求设置
        {
            emit clicked();
        }
        QLineEdit::mousePressEvent(event);
    }
    
    
    

    本文重写了事件过滤器来添加了点击事件,设置了左键点击,可以根据需求更改。同时不止可以重写鼠标点击事件,可以按照需求来更改代码。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月8日
  • 已采纳回答 3月31日
  • 创建了问题 3月24日