我使用QPlainTextEdit
代码编辑器也显示行号。
但是当我按shift+return
时,编辑器会中断,但行号不会增加。
我认为在html中它只是<br/>
而不是新的<p>
代码......
看一下截图...
答案 0 :(得分:2)
你可能应该使用QTextEdit,因为这是我们正在讨论的富文本。
覆盖virtual void keyPressEvent ( QKeyEvent * e )
。您可以在实施中调用QTextEdit::keyPressEvent
来委派非特殊情况。
答案 1 :(得分:0)
实际上,您可以将对象与eventFilter和installEventFilter函数一起使用。
#ifndef SHIFTENTERFILTER_H
#define SHIFTENTERFILTER_H
#include <QObject>
#include <QEvent>
#include <QKeyEvent>
class ShiftEnterFilter : public QObject
{
protected:
virtual bool eventFilter(QObject *, QEvent *event) {
if(event -> type() == QEvent::KeyPress)
{
QKeyEvent *keyEvent = static_cast <QKeyEvent> (event);
if((keyEvent -> modifiers() & Qt::ShiftModifier) && ((keyEvent -> key() == Qt::Key_Enter) || (keyEvent -> key() == Qt::Key_Return)))
return true;
}
return false;
}
public:
ShiftEnterFilter(QObject *parent = 0) : QObject(parent) {}
};
#endif
只需将此过滤器安装到QPlainTextEdit
即可// code
ui -> plainTextEdit -> installEventFilter(new ShiftEnterFilter(this));
// code