Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
610 views
in Technique[技术] by (71.8m points)

qt - QPainter can draw text, but cannot draw line

I am trying to draw some lines and text with QPainter in a QOpenGLWidget in paintGL(). The text renders correctly, but the line doesn't show up. Here is my code:

void mainWidget::paintGL()
{
    glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
    glEnable(GL_DEPTH_TEST);
    glViewport(0, 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();
}

Drawing the text is absolutely okay, but the line doesn't show up. I have seen other answers referencing the line being outside of the QPaintEvent, but the text renders okay. The parts of the line are not out of bounds, because drawing text at both ends allows both text to show.

Why doesn't the line draw, and how can I fix it?

question from:https://stackoverflow.com/questions/65644553/qpainter-can-draw-text-but-cannot-draw-line

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
Waitting for answers

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...