2013-03-09 76 views
1

正如标题所示,突出显示似乎不适用于窗体创建的QTextEdit。 我QSyntaxHighlighter derrivate类是Qt docs一个和我的代码(即不工作的一个):QSyntaxHighlighter不适用于表单创建QTextEdit

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

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

回答

2

您的荧光笔在构造函数的末尾超出范围。把它放在堆上,并使其成为一个成员变量,它应该工作。

class MainWindow 
{ 
//... 

private: 
    HtmlHighlighter * h1; 
} 

然后在您的CPP文件:

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

希望有所帮助。

相关问题