无法在PYQT4中禁用按钮

时间:2013-06-11 23:26:43

标签: python pyqt pyqt4

您好我有一个GUI,可以选择要处理的文件。

当他点击“进程”时,我希望禁用按钮(“退出”和“进程”)。我试过“self.Qbtn.setEnabled(False)”,坚果它似乎不起作用。按钮像往常一样。

这是一个简洁的代码,该函数需要大约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)

1 个答案:

答案 0 :(得分:2)

您可以在致电QtGui.QApplication.processEvents()之前尝试拨打Traiter()。 阅读更多here