如何禁用QPushButton

时间:2015-06-20 11:58:23

标签: python button pyqt4

我尝试从其他文件调用UI,但无法禁用按钮。我不知道在哪里放置.setEnabled(False)。我将它放在除main之外的任何地方,但按钮仍然启用。

import sys
from PyQt4 import QtCore, QtGui
from a import Ui_MainWindow

class machine(QtGui.QMainWindow, Ui_MainWindow):
    def __init__(self):
        super(machine, self).__init__()
        self.setupUi(self)
        self.initUI()
        self.disablebtn()
        self.btn_Save.setEnabled(False);
        self.btn_Close.setEnabled(False);  
        self.show()

    def initUI(self):
        self.desktopSize()
        self.statusbar().showMessage("super dooper")
        self.btn_Save.setEnabled(False);
        self.btn_Close.setEnabled(False);  

if __name__ == "__main__":
    import sys
    app = QtGui.QApplication(sys.argv)
    MainWindow = QtGui.QMainWindow()
    ui = Ui_MainWindow()
    ui.setupUi(MainWindow)
    MainWindow.show()
    sys.exit(app.exec_())

1 个答案:

答案 0 :(得分:0)

您的machine班级确实正确地停用了按钮,但您从未创建过它的实例,因此它永远不会有机会正常工作。

代码应该看起来更像这样:

import sys
from PyQt4 import QtCore, QtGui
from a import Ui_MainWindow

class machine(QtGui.QMainWindow, Ui_MainWindow):
    def __init__(self):
        super(machine, self).__init__()
        self.setupUi(self)
        self.initUI()

    def initUI(self):
        self.statusBar().showMessage("super dooper")
        self.btn_Save.setEnabled(False)
        self.btn_Close.setEnabled(False)

if __name__ == "__main__":

    app = QtGui.QApplication(sys.argv)
    MainWindow = machine()
    MainWindow.show()
    sys.exit(app.exec_())