• Qt之密码框不可全选、复制、粘贴无右键菜单等


    转载---》 http://blog.sina.com.cn/s/blog_a6fb6cc90101artk.html

    在做用户登录界面的时候,往往会用到密码框,则其中的一些功能也要求与普通的输入框不同,包括不能全选、复制、粘贴、无右键菜单等、设置密码不可见等功能!

     

    #include "pwd_line_edit.h"

    PwdLineEdit::PwdLineEdit(QWidget *parent) :
     QLineEdit(parent)
    {
     //设置无右键菜单
     this->setContextMenuPolicy(Qt::NoContextMenu);

     //设置密码提示
     this->setPlaceholderText(tr("密码"));

     //设置密码隐藏
     this->setEchoMode(QLineEdit::Password);

    //设置密码框样式

     this->setStyleSheet("QLineEdit{border- 1px; border-radius: 4px; font-size:12px; color: black; border:1px solid gray;}"
      "QLineEdit:hover{border- 1px; border-radius: 4px; font-size:12px; color: black; border:1px solid rgb(70, 200, 50);}");

     //设置最大长度16位
     this->setMaxLength(16);
    }

    PwdLineEdit::~PwdLineEdit()
    {

    }

     

    //屏蔽输入框全选、复制、粘贴功能

    void PwdLineEdit::keyPressEvent(QKeyEvent *event)
    {
       if(event->matches(QKeySequence::SelectAll))
       {   
          return ;   
       }
       else if(event->matches(QKeySequence::Copy))
       {   
          return ;   
       }
       else if(event->matches(QKeySequence::Paste))
       {   
          return ;   
       }
       else
       {
          QLineEdit::keyPressEvent(event);
       }

     return QWidget::eventFilter(obj, event);
    }

     

    //主要设置鼠标位于密码框中时不可移动

    void PwdLineEdit::mouseMoveEvent(QMouseEvent *)
    {
       return ;
    }

     

     

    效果图如下:

    Qt之密码框不可全选、复制、粘贴无右键菜单等


    Qt之密码框不可全选、复制、粘贴无右键菜单等

    友好地提示用户,且不可复制、粘贴,实现密码的有力保护!

  • 相关阅读:
    PHP实现---汉字简体繁体转换
    js对象中的回调函数
    常用js正则
    复合sql
    恢复和去掉所有表约束
    小心as"陷阱"(c#)
    由“js跨域”想到"AJAX也不一定要XMLHttpRequest"
    jsonp与跨域
    关于js的string的3个函数slice,substring,substr对比
    英语etc怎么发音、单词来历
  • 原文地址:https://www.cnblogs.com/xj626852095/p/3648108.html
Copyright © 2020-2023  润新知