Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ QSyntaxHighlighter不适用于创建的表单QTextEdit_C++_Qt - Fatal编程技术网

C++ QSyntaxHighlighter不适用于创建的表单QTextEdit

C++ QSyntaxHighlighter不适用于创建的表单QTextEdit,c++,qt,C++,Qt,正如标题所示,突出显示似乎不适用于创建的表单QTextEdit。 我的QSyntaxHighlighter derrivate类来自我的代码(不工作的代码): 但如果我这样做,效果很好: int main(int argc, char *argv[]) { QApplication app(argc, argv); MainWindow win; win.show(); QTextEdit editor; HighLighter highlighter(e

正如标题所示,突出显示似乎不适用于创建的表单QTextEdit。 我的QSyntaxHighlighter derrivate类来自我的代码(不工作的代码):

但如果我这样做,效果很好:

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());
希望有帮助

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