2014-12-17 2 views
1

У меня есть код на Python, который создает окно сообщения с PyQt4. некоторые строки моего кода:закрыть pyqt4 window автоматически

def __init__(self, parent=None): 
    QtGui.QWidget.__init__(self, parent) 
    self.ui = Ui_MainWindow() 
    self.ui.setupUi(self) 
    self.ui.pushButton.clicked.connect(self.clear_win) 

Когда я нажал кнопку, окно закрылось.

Теперь я хочу закрыть его автоматически. Я имею в виду, когда появляется окно (поле mssage), оно может закрываться через несколько секунд и не нужно нажимать кнопку.

Спасибо.

ответ

2

Вы можете добавить таймер и позвонить по телефону self.clear_win по истечении таймера.

def __init__(self, parent=None): 
    QtGui.QWidget.__init__(self, parent) 
    self.ui = Ui_MainWindow() 
    self.ui.setupUi(self) 
    self.ui.pushButton.clicked.connect(self.clear_win) 

    QtCore.QTimer.singleShot(3000, self.clear_win) 
+0

Я не хочу использовать 'self.ui.pushButton.clicked.connect (self.clear_win)', а также этот код не работает для me.thanks. –

+0

Вы можете удалить кнопку в целом, я просто оставил ее. Почему она не работает? – 101

+0

Теперь я удалил его, но он не закрывает окно! –

-1

На самом деле мы используем sys.exec_() функцию в конце PyQt приложения это то, где все идет не так ... self.close() закрывает диалог, но не приложения. sys.exec_() примет что-то делать вручную или принимает нажатие кнопки закрытия. если вы удалите это, приложение не будет показано вам или оно автоматически закроется. если вы хотите закрыть приложение после некоторого времени ... тогда вы можете использовать sleep (5), и self.exec_() автоматически закроет ваше приложение.

+1

Никогда не рекомендуется использовать сон в потоке графического интерфейса, есть и другие варианты, такие как QEventLoop с QTimer – eyllanesc

Смежные вопросы