2012-12-30 57 views
1

我創建了QPushButton並建立了與特定任務的連接。除了這個任務,我想禁用這個QPushButton。因此,我在任務之前添加了mypushbutton.setEnabled(False),但它不會像我預期的那樣工作,在我的任務完成後該按鈕被禁用。但是,當我刪除我的任務時,它會起作用。在任務之前禁用QPushButton

+2

如果任務是阻止,你可能要考慮線程,以避免阻塞事件循環。 –

+0

緊跟在'setEnabled(false)'後面並且在「運行我的任務」之前嘗試調用'mypushbutton.repaint()'。 – doc

回答

2

你可以這樣做:

mypushbutton.setEnabled(False); 
QCoreApplication::processEvents(); 
// do something 

http://doc.qt.digia.com/qt/qcoreapplication.html#processEvents

與文檔更新評論

+2

你已經創建了本地的事件循環,甚至不會啓動並且什麼也不做。處理主事件循環未決事件的方式是調用QCoreApplication :: processEvents()。 – doc