1

タイトルが示すように、QTextEdit で作成されたフォームでは強調表示が機能しないようです。私の QSyntaxHighlighter 派生クラスは、Qt docsと私のコード (動作しないもの) からのものです:

ui->setupUi(this);
HtmlHighlighter hl(ui->textEdit->document());

しかし、私がこれを行うと、うまく動作します:

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    MainWindow win;
    win.show();
    QTextEdit editor;
    HighLighter highlighter(editor.document());
    editor.show();

    return app.exec();
}

生成されたフォームで動作させる方法はありますか?

4

1 に答える 1

2

コンストラクターの最後で蛍光ペンがスコープ外になります。それをヒープに置き、メンバー変数にすると、機能するはずです。

class MainWindow
{
//...

private:
    HtmlHighlighter * h1;
}

次に、cppファイルで:

ui->setupUi(this);
hl = new HtmlHighlighter(ui->textEdit->document());

お役に立てば幸いです。

于 2013-03-10T00:01:52.140 に答える