2013-06-11 52 views
1

您好我有一個選擇要處理的文件的GUI。在PYQT4中禁用按鈕有問題

當他點擊「進程」時,我希望禁用按鈕(「退出」和「進程」)。我試過「self.Qbtn.setEnabled(False)」,它似乎並不奏效。 buttuon像往常一樣。

這是一個簡潔的代碼,它的功能大約需要2秒才能處理。你看到奇怪的東西嗎?有什麼建議? Python的2.7.3,PyQt4的

class GuiPTCR(QtGui.QWidget): (the indent is ok) 
def __init__(self): 
    super(GuiPTCR, self).__init__() 

    self.initUI() 

def initUI(self):   
    self.Qbtn = QtGui.QPushButton('Quitter'.decode('utf-8').encode(enco), self) 
    self.Qbtn.clicked.connect(QtCore.QCoreApplication.instance().quit) # QtCore.QCoreApplication.instance().quit 
    self.Qbtn.setToolTip('Quitter'.decode('utf-8').encode(enco)) 
    self.Qbtn.resize(self.Qbtn.sizeHint()) 

    self.btnTraiter = QtGui.QPushButton("Traiter".decode('utf-8').encode(enco)) 
    self.btnTraiter.clicked.connect(self.Traiter1) 

def Traiter1(self): 
    import os 

    self.Qbtn.setEnabled(False) 
    self.btnTraiter.setEnabled(False) 

    fichierRes = Traiter() 

    self.Qbtn.setEnabled(True) 
    self.btnTraiter.setEnabled(True) 

    self.res.setText("Fait en {:.2f} secondes".format(elapsed)) 
    if self.OuvrirRes.checkState() == 2: 
     os.startfile(fichierRes) 

回答

2

您可以嘗試只是打電話Traiter()之前調用QtGui.QApplication.processEvents()。 閱讀全文here

+0

謝謝!它像一個魅力。 – Starter2