QSyntaxHighlighter不能用于创建QTextEdit的表单

QSyntaxHighlighter not working for form created QTextEdit

本文关键字:表单 QTextEdit 创建 不能 用于 QSyntaxHighlighter      更新时间:2023-10-16

正如标题所示,高亮显示似乎不适用于创建QTextEdit的表单。我的QSyntaxHighlighter派生类是从Qt文档和我的代码(一个不工作):

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();
}

是否有任何方法可以让它与生成的表单一起工作?

你的荧光笔在构造函数的末尾超出了作用域。把它放在堆上,并使它成为一个成员变量,它应该可以工作。

class MainWindow
{
//...
private:
    HtmlHighlighter * h1;
}

然后在你的cpp文件中:

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

希望对你有帮助。