1

嗨,我有一个 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)
4

1 回答 1

2

QtGui.QApplication.processEvents()您可以在调用之前尝试调用Traiter()在这里阅读更多:

于 2013-07-01T21:14:20.080 回答