[PyQt] Resize flicking on QMainWindow centralWidget in python but not C++
Patrick Stinson
patrickkidd at gmail.com
Sun Oct 6 03:25:30 BST 2019
So it does, and changing that makes it work like the C++ example.
My own app is still showing the problem even without using QOpenGLWidget. I wonder if there is some setting somewhere that implicitly uses QOpenGLWidget….
> On Oct 5, 2019, at 5:36 PM, Eric Pettersen <pett at cgl.ucsf.edu> wrote:
>
> 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 <mailto: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 <mailto:PyQt at riverbankcomputing.com>
>> https://www.riverbankcomputing.com/mailman/listinfo/pyqt <https://www.riverbankcomputing.com/mailman/listinfo/pyqt>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://www.riverbankcomputing.com/pipermail/pyqt/attachments/20191005/4bbfde48/attachment.html>
More information about the PyQt
mailing list