zengshuxin01 发表于 2015-1-20 17:50:26

QLineEdit二次输入清空原来的内容

求大家帮帮吗?qt登录界面的密码框QLineEdit记录了密码,现在想编辑密码,当按键键入时怎么删除之前存在的密码,只保留现在键入的密码?

shasidaran 发表于 2015-1-20 17:50:27

楼主的用法就如同给LineEdit增加一个clicked的功能嘛,可以尝试使用一下事件滤波器。

1、在.h中声明//signals:
//    void clicked();            //如果需要产生信号
protected:
    bool eventFilter(QObject *obj, QEvent *event);2、在.cpp中构造函数中,安装事件滤波器ui->lineEdit->installEventFilter(this);3、cpp中实现函数体bool MainWindow::eventFilter(QObject *obj, QEvent *event)
{
    if(obj == ui->lineEdit && event->type() == QEvent::MouseButtonPress)
    {
      QMouseEvent *me = (QMouseEvent*)event;
      if(me->button() == Qt::LeftButton)
      {
            //emit clicked();
            qDebug() << "clicked";
            ui->lineEdit->clear();
      }
    }
    return QMainWindow::eventFilter(obj,event);
}

qq1043068972 发表于 2015-1-20 22:37:51

QLineEdit每次获得焦点后就清空下不就行了嘛?

zengshuxin01 发表于 2015-1-21 09:25:32

用信号槽怎么实现,可以详细解释一下吗   

zengshuxin01 发表于 2015-1-21 11:53:25

shasidaran 发表于 2015-1-21 11:41 static/image/common/back.gif
楼主的用法就如同给LineEdit增加一个clicked的功能嘛,可以尝试使用一下事件滤波器。

1、在.h中声明2、在. ...

恩,正是我需要的,谢谢shasidaran!
页: [1]
查看完整版本: QLineEdit二次输入清空原来的内容