1

正如标题所示,突出显示似乎不适用于创建 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();
}

有没有办法让它与生成的表单一起工作?

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 回答