我正在尝试在 QScintilla 中实现自定义语法突出显示。我继承了 QsciLexerCustom。我尝试在 styleText 中设置文本的颜色和字体。但是一旦设置,选择文本时会有额外的空间
我的代码:
class MyCustomLexer: public QsciLexerCustom
{
public:
MyCustomLexer(QsciScintilla *parent);
void styleText(int start, int end);
QString description(int style) const;
const char *language() const;
QsciScintilla *parent_;
};
MyCustomLexer::MyCustomLexer(QsciScintilla *parent)
{
setColor(QColor("#000000"), 1);
setFont(QFont("Consolas", 18), 1);
}
void MyCustomLexer::styleText(int start, int end)
{
QString lexerText = parent_->text(start, end);
...
startStyling(...);
setStyling(..., 1); // set to style 1
}
QString MyCustomLexer::description(int style) const
{
switch (style)
{
case 0:
return tr("Default");
...
}
const char *MyCustomLexer::language() const
{
return "MyCustomLexer";
}
有人知道为什么吗?