0

我正在按照本教程将代码编辑器实现到我正在制作的程序 中 在此处输入链接描述

我被困在“lineNumberPaintEvent”方法上。这就是我所拥有的

void LineNumbers::paintEvent(QPaintEvent *event) {
    QPainter painter(this);
    painter.fillRect(event->rect(), NUMBER_LINE_COLOR);

    QTextBlock block    = parent->armaEdit->firstVisibleBlock();
    int blockNumber     = block.blockNumber();
}

其中“armaEdit”是另一个类中的 QPlainTextEdit 小部件。当我尝试运行它时,我收到以下错误:

error: 'QTextBlock QPlainTextEdit::firstVisibleBlock() const' is protected

我还没有遇到这个错误,我不知道是什么意思,或者我做错了什么。有人可以指出我的错误吗?

4

1 回答 1

3

受保护的方法是类的作者用“受保护”关键字标记的方法。它只能由类的子类访问(即在这种情况下,在 QPlainTextEdit 的子类中编码)。

通常这表明您不应该调用该方法,因为它不打算供 QPlainTextEdit 或其子类以外的任何代码使用。

但是,如果您真的需要调用它,您可以创建 QPlainTextEdit 的子类,并从该子类的方法中调用 firstVisibleBlock()。

于 2013-09-09T23:05:06.617 回答