请教如何能让QplainEdit既能响应键盘事件,又能接受输入
小弟刚接触qt还未入门,遇到问题,请大牛赐教。
void QPlainTextEdit::keyPressEvent(QKeyEvent *e)
{
if(e->key()==Qt::Key_Delete)
{
QMessageBox::warning(0,tr("警告"),tr("不能重复选择相同联系人!"),QMessageBox::Ok);
}
else
QWidget::keyPressEvent(e);
}
我想实现的是如果QPlainEdit中键入的是其他字符,就显示字符;如果是delete键就自己另外处理,代码随便写了个messagebox测试用的。
[解决办法]
可以研究一下这个函数eventFilter ( QObject * watched, QEvent * event ) ,用之前先要对先关控件进行安装,installEventFilter().
[解决办法]
void QPlainTextEdit::keyPressEvent(QKeyEvent *e){ if(e->key()==Qt::Key_Delete) { QMessageBox::warning(0,tr("警告"),tr("不能重复选择相同联系人!"),QMessageBox::Ok); } else QWidget::keyPressEvent(e);//改为下面的代码 QPlaintTextEdit::keyPressEvent(e);}