Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » Как обновить-перерисовать окно (widget) [RSS Feed]

#1 Июнь 19, 2012 06:07:25

Pluto
Зарегистрирован: 2012-05-29
Сообщения: 177
Репутация: +  2  -
Профиль   Отправить e-mail  

Как обновить-перерисовать окно (widget)

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'а у него никакого нет.

Офлайн

#2 Июнь 19, 2012 06:56:07

reclosedev
От: Н.Новгород
Зарегистрирован: 2012-03-29
Сообщения: 870
Репутация: +  173  -
Профиль   Отправить e-mail  

Как обновить-перерисовать окно (widget)

Нужно в цикл добавить вызов QCoreApplication.processEvents()

Офлайн

#3 Июнь 19, 2012 07:05:31

Pluto
Зарегистрирован: 2012-05-29
Сообщения: 177
Репутация: +  2  -
Профиль   Отправить e-mail  

Как обновить-перерисовать окно (widget)

Пардон за чайничество, но как это должно выглядеть в моём коде? Просто подставить эту строчку QCoreApplication.processEvents() не получается.

Офлайн

#4 Июнь 19, 2012 07:09:03

reclosedev
От: Н.Новгород
Зарегистрирован: 2012-03-29
Сообщения: 870
Репутация: +  173  -
Профиль   Отправить e-mail  

Как обновить-перерисовать окно (widget)

Pluto
Пардон за чайничество, но как это должно выглядеть в моём коде? Просто подставить эту строчку QCoreApplication.processEvents() не получается.
for ...:
    ...
    QtCore.QCoreApplication.processEvents()
    time.sleep(...)

Офлайн

#5 Июнь 19, 2012 07:33:11

Pluto
Зарегистрирован: 2012-05-29
Сообщения: 177
Репутация: +  2  -
Профиль   Отправить e-mail  

Как обновить-перерисовать окно (widget)

Благодарю.

Офлайн

  • Начало
  • » GUI
  • » Как обновить-перерисовать окно (widget)[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version