как можно увеличивать и уменьшать значение lcd.display(0) при нажатии на кнопку? какую функцию прописать?

Рейтинг: -1Ответов: 2Опубликовано: 28.03.2023
from PyQt5 import QtCore , QtWidgets
import sys
class MyWindow(QtWidgets.QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("Радио")
        self.resize(450, 200)
        self.btn1 = QtWidgets.QPushButton("+")
        self.btn2 = QtWidgets.QPushButton("-")
        self.vbox = QtWidgets.QVBoxLayout()
        self.setLayout(self.vbox)
        self.vbox.addWidget(self.btn1)
        self.vbox.addWidget(self.btn2)
        self.lcd1 = QtWidgets.QLCDNumber()
        self.lcd1.display(0)
        self.vbox.addWidget(self.lcd1)



if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    window = MyWindow()
    window.show()
    sys.exit(app.exec_())

Ответы

▲ 0

Для изменения значения на LCD-дисплее при нажатии на кнопку "+" и "-" вам нужно добавить слоты (обработчики событий) для них и в этих слотах изменять значение, отображаемое на дисплее.

Например, вы можете использовать следующие функции-слоты для увеличения и уменьшения значения на единицу:

class MyWindow(QtWidgets.QWidget): def init(self): # ... ваш код ... self.btn1.clicked.connect(self.increment_value) self.btn2.clicked.connect(self.decrement_value)

def increment_value(self):
    value = self.lcd1.value() + 1
    self.lcd1.display(value)

def decrement_value(self):
    value = self.lcd1.value() - 1
    self.lcd1.display(value)
▲ 0

Рабочий код:

from PyQt5 import QtCore , QtWidgets
import sys
class MyWindow(QtWidgets.QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("Радио")
        self.resize(450, 200)
        self.btn1 = QtWidgets.QPushButton("+")
        self.btn2 = QtWidgets.QPushButton("-")
        self.vbox = QtWidgets.QVBoxLayout()
        self.setLayout(self.vbox)
        self.vbox.addWidget(self.btn1)
        self.vbox.addWidget(self.btn2)
        self.lcd1 = QtWidgets.QLCDNumber()
        self.lcd1.display(0)
        self.vbox.addWidget(self.lcd1)
        
        self.btn1.clicked.connect(self.funcPlus)
        self.btn2.clicked.connect(self.funcMinus)

    def funcPlus(self):
        value = self.lcd1.value() + 1
        self.lcd1.display(value)

    def funcMinus(self):
        value = self.lcd1.value() - 1
        self.lcd1.display(value)

    def keyPressEvent(self, event):
        if event.key() == QtCore.Qt.Key_Plus:
            self.funcPlus()
        if event.key() == QtCore.Qt.Key_Minus:
            self.funcMinus()
        event.accept()


if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    window = MyWindow()
    window.show()
    sys.exit(app.exec_())

Так же можно использовать keyPressEvent чтобы нажимать + и - на клавиатуре.