搜了很多资料,然后总结一下禁用复制、剪切、粘贴功能,关闭右键点击菜单如何实现?
具体实现如下:
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.csdn.net/ljhandlwt/article/details/52354139;配置QKeySequence。
下面屏蔽右键出现菜单的步骤:
直接将contextMenuPolicy设置一下就可以了。找了半天资料,终于实现了,下面总结一下:
在构造函数中使用installEventFilter函数安装过滤器,在下面实现eventFilter过滤方法,处理复制、剪切、粘贴的功能,对于关闭右键菜单的功能,在ui中设置一下就行了。