私は現在、Qtで書かれたコードエディタに取り組んでいます。
オートコンプリートやシンタックスハイライトなど、必要な機能のほとんどを実装できましたが、理解できない問題が1つあります。
使用するモデルを作成しましたQCompleter
。これは、htmlタグやc++キーワードなどに適していますif else
。
しかし、ユーザーが入力した変数をコンプリーターに追加したいと思います。
そこで、単語を取得するイベントを作成しましたQTextEdit
(変数などであることを確認する必要があることはわかっていますが、今は機能させたいだけです)。
void TextEdit::checkWord()
{
//going to get the previous word and try to do something with it
QTextCursor tc = textCursor();
tc.movePosition(QTextCursor::PreviousWord);
tc.select(QTextCursor::WordUnderCursor);
QString word = tc.selectedText();
//check to see it is in the model
}
QCompleter
しかし、今度は、その単語がすでにsモデルに含まれているかどうかを確認する方法と、含まれていない場合はどのように追加するかを調べたいと思います。
私は以下を試しました:
QAbstractItemModel *m = completer->model();
//dont know what to do with it now :(