You no need to do self.button2.clicked.disconnect()
as you are disabling button2. That itself is sufficient. Secondly in you are calling enableButton2()
from slot of button1
this is wrong. You are blocking main thread for 10 seconds in your while loop. This is wrong way of doing things.
Instead you should use a QTimer
set time for 10 seconds and start it from button1
's slot. In timer's slot you can enable button2. see QTimer here, Following is C++ example you can convert it in python easily
QTimer *timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), this, SLOT(update()));
timer->start(1000);