[PyQt] Resize flicking on QMainWindow centralWidget in python but not C++

Eric Pettersen pett at cgl.ucsf.edu
Sat Oct 5 22:36:04 BST 2019


Your Python class inherits from QOpenGLWidget.  Your C++ class inherits from QWidget.

> On Oct 5, 2019, at 2:10 PM, Patrick Stinson <patrickkidd at gmail.com> wrote:
> 
> Hello,
> 
> On MacOS, a QMainWindow with a simple painted centralWidget flickers when resizing quickly in python but not in C++. This only occurs with QMainWindow It is particularly pronounced more complex widgets, as shown in the following video:
> 
> https://youtu.be/0Qjy2wm6m9M <https://youtu.be/0Qjy2wm6m9M>
> 
> Here is the python example that shows the bug. Just run, rapidly resize the height of the widget , and observe a black flickering on the top edge of the widget as the height changes.
> 
> class Widget(QOpenGLWidget):
>     def paintEvent(self, e):
>         p = QPainter(self)
>         p.setBrush(Qt.red)
>         p.drawRect(self.rect())
> 
> app = QApplication(sys.argv)
> mw = QMainWindow()
> w = Widget()
> mw.setCentralWidget(w)
> mw.show()
> w.show()
> app.exec()
> 
> 
> The following 1-to-1 C++ translation shows no such behavior:
> 
> 
> #include <QApplication>
> #include <QMainWindow>
> #include <QWidget>
> #include <QPainter>
> 
> class Widget : public QWidget {
> public:
>     void paintEvent(QPaintEvent *) {
>         QPainter p(this);
>         p.setBrush(Qt::red);
>         p.drawRect(rect());
>     }
> };
> 
> int main(int argc, char *argv[])
> {
>     QApplication a(argc, argv);
>     QMainWindow mw;
>     QWidget *w = new Widget;
>     mw.setCentralWidget(w);
>     mw.show();
>     return a.exec();
> }
> 
> 
> 
> 
> 
> _______________________________________________
> PyQt mailing list    PyQt at riverbankcomputing.com
> https://www.riverbankcomputing.com/mailman/listinfo/pyqt

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://www.riverbankcomputing.com/pipermail/pyqt/attachments/20191005/2a5ec447/attachment-0001.html>


More information about the PyQt mailing list