无法向textedit添加语法高亮显示

时间:2014-07-11 11:25:16

标签: c++ qt

我正在开发C ++和QT。我想创建文本编辑器,我有问题。 与

PythonSyntaxHighlighter *highlighter;
highlighter = new PythonSyntaxHighlighter(ui->editor->document());

我无法编译我的程序,因为它有四个错误:

  • 'PythonSyntaxHighlighter'未在此范围内声明

  • 'highlighter'未在此范围内声明

  • 'PythonSyntaxHighlighter'之前的预期类型说明符

  • 预期';'在'PythonSyntaxHighlighter'之前

这是我的texteditor.cpp:

#include "texteditor.h"
#include "ui_texteditor.h"
#include "PythonSyntaxHighlighter.h"

TextEditor::TextEditor(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::TextEditor)
{
    PythonSyntaxHighlighter *highlighter;
    highlighter = new PythonSyntaxHighlighter(ui->editor->document());
    ui->setupUi(this);
}

TextEditor::~TextEditor()
{
    delete ui;
}

更新: pythonsyntaxhighlighter.cpp:http://pastebin.com/yFvXahiX pythonsyntaxhighlighter.h:http://pastebin.com/TpR4X3sm 没有用于调用'PythonSyntaxHighlighter :: PythonSyntaxHighlighter(QTextDocument *)'的匹配函数      PythonSyntaxHighlighter * pythonHighlighter =新的PythonSyntaxHighlighter(ui-> editor-> document());

1 个答案:

答案 0 :(得分:0)

您必须包含PythonSyntaxHighlighter。

例如:

#include "pythonsyntaxhighlighter.h"

<强>更新

ui->editor->document();

这行代码返回指针:QTextDocument *。

PythonSyntaxHighlighter中的构造函数应支持此参数:

PythonSyntaxHighlighter::PythonSyntaxHighlighter(QTextDocument* TextDoc)
{
}

PythonSyntaxHighlighter::~PythonSyntaxHighlighter()
{
}

第二个问题:

ui->setupUi(this);
PythonSyntaxHighlighter *highlighter;
highlighter = new PythonSyntaxHighlighter(ui->editor->document());

首先是setupUi,现在你可以访问ui会员! SetupUi初始化它们