我正在开发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());
答案 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初始化它们