Update: I managed to create a simple small example project with two QDockWidgets and a QScrollArea as a central widget. Even though there's not much to see in the QGLWidgets, if you scroll around in the central widget you'll see the problem I'm talking about in the docked widgets. Undock them and the flickering doesn't happen. Dock them again and scroll around and it happens.
main.cpp
#include <QtGui/QApplication>
#include "mainwindow.h"
//#include <GL/glut.h>
int main(int argc, char *argv[])
{
// glutInit( &argc, argv );
MainWindow w;
w.show();
return a.exec();
}
#include <QtGui/QApplication>
#include "mainwindow.h"
//#include <GL/glut.h>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
// glutInit( &argc, argv );
MainWindow w;
w.show();
return a.exec();
}
To copy to clipboard, switch view to plain text mode
mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QDockWidget>
#include <QGLWidget>
#include <QScrollArea>
namespace Ui {
class MainWindow;
}
{
Q_OBJECT
public:
explicit MainWindow
(QWidget *parent
= 0);
~MainWindow();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QDockWidget>
#include <QGLWidget>
#include <QScrollArea>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private:
Ui::MainWindow *ui;
QDockWidget* dw1;
QDockWidget* dw2;
QGLWidget* gw1;
QGLWidget* gw2;
QGLWidget* gw3;
QScrollArea* sa;
};
#endif // MAINWINDOW_H
To copy to clipboard, switch view to plain text mode
mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow
::MainWindow(QWidget *parent
) : ui(new Ui::MainWindow)
{
ui->setupUi(this);
addDockWidget(Qt::RightDockWidgetArea, dw1 );
addDockWidget(Qt::BottomDockWidgetArea, dw2 );
gw1->setMinimumSize(100,100);
dw1->setWidget(gw1);
gw2->setMinimumSize(100,100);
dw2->setWidget(gw2);
gw3->setMinimumSize(1024,768);
sa->setWidget(gw3);
setCentralWidget(sa);
}
MainWindow::~MainWindow()
{
delete ui;
delete dw1;
delete dw2;
delete gw1;
delete gw2;
delete gw3;
delete sa;
}
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
dw1 = new QDockWidget("DW1",this);
dw2 = new QDockWidget("DW2",this);
addDockWidget(Qt::RightDockWidgetArea, dw1 );
addDockWidget(Qt::BottomDockWidgetArea, dw2 );
sa = new QScrollArea();
gw1 = new QGLWidget();
gw1->setMinimumSize(100,100);
dw1->setWidget(gw1);
gw2 = new QGLWidget();
gw2->setMinimumSize(100,100);
dw2->setWidget(gw2);
gw3 = new QGLWidget();
gw3->setMinimumSize(1024,768);
sa->setWidget(gw3);
setCentralWidget(sa);
}
MainWindow::~MainWindow()
{
delete ui;
delete dw1;
delete dw2;
delete gw1;
delete gw2;
delete gw3;
delete sa;
}
To copy to clipboard, switch view to plain text mode
Bookmarks