Как сделать кнопку неактивной в pyqt?

Пользователь

от edyth , в категории: Python , 2 года назад

Как сделать кнопку неактивной в pyqt?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от loyal , 2 года назад

@edyth 

Чтобы сделать кнопку неактивной в PyQt, используйте метод setEnabled(False) у объекта QPushButton. Например:

1
2
button = QPushButton("Click me")
button.setEnabled(False)


или в вашем случае

1
self.pushButton.setEnabled(False)


Чтобы сделать кнопку активной снова, используйте setEnabled(True)

1
button.setEnabled(True)


Пользователь

от cierra , год назад

@edyth 

Вот полный пример кода, который показывает, как сделать кнопку неактивной и снова активной:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton

class MyWidget(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.setWindowTitle('Disable Button Example')

        self.button = QPushButton('Click me', self)
        self.button.setGeometry(50, 50, 100, 30)

        disable_button = QPushButton('Disable', self)
        disable_button.setGeometry(50, 100, 100, 30)
        disable_button.clicked.connect(self.disableButton)

        enable_button = QPushButton('Enable', self)
        enable_button.setGeometry(50, 150, 100, 30)
        enable_button.clicked.connect(self.enableButton)

    def disableButton(self):
        self.button.setEnabled(False)

    def enableButton(self):
        self.button.setEnabled(True)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    widget = MyWidget()
    widget.show()
    sys.exit(app.exec_())


В этом примере, наряду с кнопкой "Click me" есть две другие кнопки: "Disable" и "Enable". При нажатии на "Disable" кнопка "Click me" становится неактивной, а при нажатии на "Enable" она становится активной снова.