Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » Как заставит PyQt4 программу подождать? [RSS Feed]

#1 Ноя. 24, 2008 14:19:26

gmorgunov
От:
Зарегистрирован: 2008-10-15
Сообщения: 137
Репутация: +  0  -
Профиль   Отправить e-mail  

Как заставит PyQt4 программу подождать?

Кстати, я вчера проверял singleShot. Похоже в Qt4 - пашет, в Pyqt4 - нет.
Вот это( из assistant):

#include <QApplication>
#include <QTimer>

int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QTimer::singleShot(5000, &app, SLOT(quit()));
...
return app.exec();
}
Работает. А аналог на Pyqt4 - нет(окно сразу пропадает). :/



Отредактировано (Ноя. 24, 2008 14:22:27)

Офлайн

#2 Ноя. 24, 2008 14:31:56

ice
От:
Зарегистрирован: 2008-01-12
Сообщения: 156
Репутация: +  0  -
Профиль   Отправить e-mail  

Как заставит PyQt4 программу подождать?

хм. У меня работает singleShot

Ровно через 5 секунд выходит приложение.

import sys
from PyQt4 import QtCore, QtGui

app = QtGui.QApplication(sys.argv)
label = QtGui.QLabel("GUI")
label.show()

timer = QtCore.QTimer.singleShot(5000, quit)

app.exec_()



Офлайн

#3 Ноя. 24, 2008 14:53:07

poltergeist
От:
Зарегистрирован: 2007-02-28
Сообщения: 522
Репутация: +  0  -
Профиль   Отправить e-mail  

Как заставит PyQt4 программу подождать?

В своём последнем посте я имел в виду сказать, что ни “QtCore.QThread.msleep(10000)” ни “QtCore.QProcess.execute(QtCore.QString(”/bin/sleep 5“))” не катят, так как останавливают event loop, и нет смысла делать эти задержки до старта GUI. QtCore.QTimer.singleShot работает конечно же, но только после запуска event loop (app.ecec_()).



Офлайн

#4 Ноя. 24, 2008 15:03:12

gmorgunov
От:
Зарегистрирован: 2008-10-15
Сообщения: 137
Репутация: +  0  -
Профиль   Отправить e-mail  

Как заставит PyQt4 программу подождать?

Да singleShot работает. Вчера ошибся впопыхах.:/ Вот ошибочный код:

import sys
from PyQt4 import QtCore,QtGui

app = QtGui.QApplication(sys.argv)
label = QtGui.QLabel("GUI")

print "wait 5 seconds"
QtCore.QTimer.singleShot(5000,app,QtCore.SLOT(quit()))
print "5 seconds passed"

label.show()
sys.exit(app.exec_())



Офлайн

#5 Ноя. 24, 2008 19:47:27

124bit
От:
Зарегистрирован: 2008-04-10
Сообщения: 121
Репутация: +  0  -
Профиль   Отправить e-mail  

Как заставит PyQt4 программу подождать?

пасиба, ща попробую



Офлайн

#6 Ноя. 25, 2008 02:30:37

ZZZ
От: Москва
Зарегистрирован: 2008-04-03
Сообщения: 2161
Репутация: +  26  -
Профиль   Адрес электронной почты  

Как заставит PyQt4 программу подождать?

Некоторое время назад я написал это.
Тема похожая, может поможет.



Офлайн

  • Начало
  • » GUI
  • » Как заставит PyQt4 программу подождать?[RSS Feed]

Board footer

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

Powered by DjangoBB

Lo-Fi Version