Есть две кнопки, просто нужно эти кнопки сложить и показать на экране Label
Хочу сложить (+): pushButton_1 + pushButton_2 и = 5 показала на экране. Прошу помочь
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
.........................
.........................
self.pushButton_1.clicked.connect(lambda: self.posle_najatiya(num=2)) #кнопка при нажатии на экране (label=Qlabel) выводит цифру 2
self.pushButton_2.clicked.connect(lambda: self.posle_najatiya(num=3)) #кнопка при нажатии на экране (label=Qlabel) выводит цифру 3
def posle_najatiya(self, num): #Функция которая показывает результат на label
self.label.setText(str(num) if self.label.text() == "0" else self.label.text() + str(num))
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
Пример, который вы приводите - должен быть воспроизводимым.
Не изменяйте код, сгенерированный Qt Designer. Создайте другой класс, который наследуется от соответствующего виджета, и используйте созданный класс для его заполнения.
Мои фантазии:
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
class MainWindow(QtWidgets.QMainWindow):
def __init__(self):
super().__init__()
centralwidget = QtWidgets.QWidget()
self.setCentralWidget(centralwidget)
self.label = QtWidgets.QLabel()
self.pushButton_1 = QtWidgets.QPushButton('2')
self.pushButton_2 = QtWidgets.QPushButton('3')
self.pushButton_1.clicked.connect(
lambda: self.posle_najatiya(num=2))
self.pushButton_2.clicked.connect(
lambda: self.posle_najatiya(num=3))
grid_layout = QtWidgets.QGridLayout(centralwidget)
grid_layout.addWidget(self.label, 0, 0, 1, 2)
grid_layout.addWidget(self.pushButton_1, 1, 0)
grid_layout.addWidget(self.pushButton_2, 1, 1)
def posle_najatiya(self, num): # Функция которая показывает результат на label
if self.label.text():
self.label.setNum(int(self.label.text()) + num)
else:
self.label.setNum(num)
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
win = MainWindow()
win.show()
sys.exit(app.exec_())
