Програмирам прост GUI с QtGUI в Python, който позволява на потребителите да стартират рутина, като щракнат върху бутон (button1) и след 10 секунди трябва да има опция да щракнат върху друг бутон (button2), за да стартират рутина. Опитах следното:
self.button1=QtGui.QPushButton('Button1',self)
self.button1.clicked.connect(self.button1clicked)
self.button2=QtGui.QPushButton('Button2',self)
self.button2.setEnabled(False)
self.button2.clicked.connect(self.button2clicked)
def button1clicked(self):
self.button2.setEnabled(False)
self.button2.clicked.disconnect()
self.timeNow = time.time()
self.enablebutton2()
def enablebutton2(self):
while(True):
if time.time() - self.timeNow > 10:
self.button2.clicked.connect(self.button2clicked)
self.button2.setEnabled(True)
break
def button2clicked(self):
someroutine()
Изглежда, че работи, бутонът е деактивиран в началото и когато щракна върху него, нищо не се случва, но след като щракнах върху button1 и 10-те секунди изтекоха, button2 получава всички кликвания, които направих преди.
Това не трябва да се случва, как мога да се уверя, че всички тези кликвания се отхвърлят, когато бутон 2 е деактивиран?