无法向文本编辑添加语法突出显示器
Can't add syntax highlighter to textedit
我正在开发c++和QT.我想创建文本编辑器,我有问题。
PythonSyntaxHighlighter *highlighter;
highlighter = new PythonSyntaxHighlighter(ui->editor->document());
我不能编译我的程序,因为它有四个错误:
'PythonSyntaxHighlighter'未在此范围内声明
'highlighter'未在此范围内声明
'PythonSyntaxHighlighter'之前的预期类型说明符
预期';'在'PythonSyntaxHighlighter'之前
这是我的文本编辑器。
#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/yFvXahiXpythonsyntaxhighlighter.h: http://pastebin.com/TpR4X3sm没有匹配的函数调用'PythonSyntaxHighlighter::PythonSyntaxHighlighter(QTextDocument*)'PythonSyntaxHighlighter *pythonHighlighter = new PythonSyntaxHighlighter(ui->editor->document());
必须包含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());
首先设置ui,现在您可以访问ui成员!SetupUi初始化它们
相关文章:
- 1d 智能指针不适用于语法 (*)++
- 助记符和指向成员语法的指针
- 有人能分解一下这个c++模板的语法吗
- C++避免重复声明的语法是什么
- QMetaObject invokeMethod的基于函数指针的语法
- 这个语法std::class<>{}(arg1, arg2) 在C++中是什么意思?
- 为什么包含windows.h会产生语法错误,从而阻止类的实例化?(C2146,C2065)
- 单独定义模板化嵌套类方法的正确语法
- 共享指针和具有自定义删除程序的唯一指针之间的语法差异背后的任何原因
- 错误 C2760:语法错误:映射迭代器上意外的标记"标识符",预期的";"
- 如何在qt中同步应用程序和显示器的刷新率?
- 为什么我会收到错误 C2143 语法错误:缺少"*"之前的';'?
- 奇怪的代码抛出编译错误模板< J,int aSize=10> C2143:语法错误:在"<"之前缺少";"
- 使用基类指针调用基类的值构造函数的语法是什么?
- 很好的语法来获取对向量/数组数据的大小引用?
- C++语法运算符功能?
- C++使用 rand 定义函数语法
- 什么文件可以修改 atom 的C++语法?
- 创建模板嵌套类实例的语法?
- 无法向文本编辑添加语法突出显示器