Найти - Пользователи
Полная версия: Как обновить-перерисовать окно (widget)
Начало » GUI » Как обновить-перерисовать окно (widget)
1
Pluto
from PyQt4 import QtCore, QtGui
import time
class MyWindow(QtGui.QWidget):
    def __init__(self, parent):
        QtGui.QWidget.__init__(self, parent)
        self.resize(500,500)
        self.setWindowTitle("Окно")
        
def window_move(self):
    i = [(500, 500), (400,400), (600,200), (300,100)]
    for q, w in i:
        self.move(q, w)
        time.sleep(1)
if __name__ == "__main__":
    import sys
    app = QtGui.QApplication(sys.argv)
    window = MyWindow(None)
    window.show()
    window_move(window)
    sys.exit(app.exec_())

После перемещения окна, его содержимое не перерисовывается пока цикл перемещений не закончится. Т.е. по экрану скачет пустая рамка. Пробовал в процедуру window_move добавлять self.update() - не помогает. Refresh'а у него никакого нет.
reclosedev
Нужно в цикл добавить вызов QCoreApplication.processEvents()
Pluto
Пардон за чайничество, но как это должно выглядеть в моём коде? Просто подставить эту строчку QCoreApplication.processEvents() не получается.
reclosedev
Pluto
Пардон за чайничество, но как это должно выглядеть в моём коде? Просто подставить эту строчку QCoreApplication.processEvents() не получается.
for ...:
    ...
    QtCore.QCoreApplication.processEvents()
    time.sleep(...)

Pluto
Благодарю.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB