私はQPlainTextEdit
を、行番号も表示するコードエディタに使用します。 しかし、shift+return
を押すと、エディタが中断しますが、行番号は増えません。 QPlainTextEdit - シフト+リターンの動作を変更します。
<p>
タグの
<br/>
だろうHTMLで考える
... ...あなたはおそらく
私はQPlainTextEdit
を、行番号も表示するコードエディタに使用します。 しかし、shift+return
を押すと、エディタが中断しますが、行番号は増えません。 QPlainTextEdit - シフト+リターンの動作を変更します。
<p>
タグの
<br/>
だろうHTMLで考える
... ...あなたはおそらく
を使用する必要がありますQTextEditはリッチテキストなので、私たちが話している。
virtual void keyPressEvent (QKeyEvent * e)
を上書きします。特別な場合を委任する実装ではQTextEdit::keyPressEvent
に電話することができます。
実際には、eventFilter関数とinstallEventFilter関数でobjectを使用できます。
#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