Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 9, 2016 09:15:04

SID88
Зарегистрирован: 2016-05-13
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQt disable на время ?

Подскажите пожалуйста как организовать setDisabled на определенное время?
т.е например сделать недоступной кнопку на несколько секунд.
Заранее спасибо

Офлайн

#2 Сен. 9, 2016 10:45:42

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9716
Репутация: +  842  -
Профиль   Отправить e-mail  

PyQt disable на время ?

Используй QTimer(). По событию вызывается слот, который отключает кнопку и запускает таймер. По событию тика таймера вызывается слот, который выключает таймер и включает кнопку.



Офлайн

#3 Сен. 9, 2016 11:03:09

SID88
Зарегистрирован: 2016-05-13
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQt disable на время ?

py.user.next
Используй QTimer(). По событию вызывается слот, который отключает кнопку и запускает таймер. По событию тика таймера вызывается слот, который выключает таймер и включает кнопку.

Большое спасибо !
Небольшой работающий пример для темы!!!


import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *


class MyApp(QWidget):
def __init__(self,*args,**kwargs):
QWidget.__init__(self,*args,**kwargs)
self.current_timer = None
self.layout = QVBoxLayout(self)
self.button = QPushButton('start timer')
self.button.clicked.connect(self.start_timer)
self.layout.addWidget(self.button)

def start_timer(self):
if self.current_timer:
self.current_timer.stop()
self.current_timer.deleteLater()
self.current_timer = QTimer()
self.current_timer.timeout.connect(self.print_hello)
self.current_timer.setSingleShot(True)
self.current_timer.start(3000)

def print_hello(self):
print ‘hello’


# Create QApplication and QWidget
qapp = QApplication(sys.argv)
app = MyApp()
app.show()
qapp.exec_()

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version