QPainter 可以画文字,但不能画线

问题描述

我正在尝试在 paintGL()qopenglwidget 中使用 QPainter 绘制一些线条和文本。文本呈现正确,但该行不显示。这是我的代码

void mainWidget::paintGL()
{
    glClearColor(0.0f,0.0f,1.0f);
    glEnable(GL_DEPTH_TEST);
    glViewport(0,width(),height());

    glDepthFunc(GL_LEQUAL);
    glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT);

    glpolygonMode(GL_FRONT_AND_BACK,GL_FILL);

    QPainter painter(this);
    painter.setPen(Qt::yellow);
    painter.setFont(QFont("Helvetica",14));
    painter.setRenderHints(QPainter::Antialiasing | QPainter::TextAntialiasing);
    QString txt = "Hello World";
    painter.drawText(50,50,txt ); // works
    painter.drawLine(QPoint(400,400),QPoint(50,50)); // doesn't work
    painter.end();
}

绘制文本绝对没问题,但线条不显示。我已经看到其他答案引用了 QPaintEvent 之外的行,但文本呈现正常。线的部分没有越界,因为在两端画文字可以让两个文字显示出来。

为什么不绘制线条,我该如何解决

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)