qt中密码输入栏,禁用复制、剪切、粘贴功能,关闭右键点击菜单功能

时间:2024-06-02 07:05:25

搜了很多资料,然后总结一下禁用复制、剪切、粘贴功能,关闭右键点击菜单如何实现?

具体实现如下:

PasswordLineEdit::PasswordLineEdit(QWidget *parent)

    : QLineEdit(parent)

{

    ui->lineEdit_passwd->installEventFilter(this);

}

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

void PasswordLineEdit::keyPressEvent(QKeyEvent *event)

{

    if(event->matches(QKeySequence::SelectAll)

            || event->matches(QKeySequence::Copy)

            || event->matches(QKeySequence::Paste) || event->matches(QKeySequence::Cut))

    {

        return ture;

    }

 

    QLineEdit::keyPressEvent(event);

}

//在QKeySequence中有很多和键盘控制有关的设置,可以根据自己需求,自己进行更改。可以参考https://blog.****.net/ljhandlwt/article/details/52354139;配置QKeySequence。

下面屏蔽右键出现菜单的步骤:

qt中密码输入栏,禁用复制、剪切、粘贴功能,关闭右键点击菜单功能

直接将contextMenuPolicy设置一下就可以了。找了半天资料,终于实现了,下面总结一下:

在构造函数中使用installEventFilter函数安装过滤器,在下面实现eventFilter过滤方法,处理复制、剪切、粘贴的功能,对于关闭右键菜单的功能,在ui中设置一下就行了。