[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