Próbuję narysować podstawowe kształty na QGLWidget. Próbuję włączyć wygładzanie krawędzi w celu wygładzenia linii, ale to nie działa.Jakie kroki są konieczne, aby włączyć wygładzanie krawędzi podczas używania QPaintera na QGLWidget?
To co próbuję w tej chwili:
QGLWidget *widget = ui->renderWidget;
QPainter painter;
widget->makeCurrent();
glEnable(GL_MULTISAMPLE);
glEnable(GL_LINE_SMOOTH);
painter.setRenderHint(QPainter::Antialiasing);
painter.setRenderHint(QPainter::HighQualityAntialiasing);
painter.begin(widget);
Jednak coś wyciągnąć z tego malarza nadal ma postrzępione krawędzie. Co jeszcze muszę zrobić?
robi swoje poparcie System Multisample bufora ramki? – cmannett85
Tak, to jest Windows 7, i dostałem go do pracy nad innym projektem Qt, który używał QGLWidget bez QPaintera, włączając tylko GL_MULTISAMPLE. – Elliott
Fakt, że jest to Windows 7, jest nieistotny, zależy od tego, czy GPU i sterowniki je obsługują - ale jeśli inny projekt _ na tym samym komputerze_ działał poprawnie, to musi być OK. Twój przykład wydaje się sugerować, że próbujesz narysować na widżecie poza zdarzeniem 'paintEvent (QPaintEvent *) lub czy jest to po prostu mylące pseudo-kod !? – cmannett85