正如标题所示,突出显示似乎不适用于创建QTextEdit的表单。 我的QSyntaxHighlighter derrivate类来自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();
}
有没有办法让它与生成的表单一起使用?
答案 0 :(得分:2)
你的荧光笔在构造函数的末尾超出了范围。把它放在堆上并使它成为一个成员变量,它应该可以工作。
class MainWindow
{
//...
private:
HtmlHighlighter * h1;
}
然后在你的cpp文件中:
ui->setupUi(this);
hl = new HtmlHighlighter(ui->textEdit->document());
希望有所帮助。