Подсчет каждого нажатия на кнопку PyQt5 Python
Есть две кнопки СТАРТ и РЕСЕТ, а так же экран.
СТАРТ кнопка начинается с 1 и при каждом клике должна начаться подсчет.
Например: 4 раза кликаю на кнопку и в экране цифра 4 должна быть и так далее.
Подскажите, с чего начать.
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
...
#Кнопка Старт. И привязка к функции start
self.pushButton.clicked.connect(lambda:self.start(n=1))
...
#Сама функция. Не знаю дальше что?
def start (self, n):
a=self.lineEdit.text()
b=self.lineEdit.setText(a+str(n))
...
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
Ответы (1 шт):
Автор решения: gil9red
→ Ссылка
Для удобства сделал класс, описывающий виджет:
- Все нужные виджеты в нем (кнопки, метку для вывода текста)
- Хранение внутренних данных
Пример:
from PyQt5.QtWidgets import QApplication, QPushButton, QLabel, QVBoxLayout, QWidget
from PyQt5.QtCore import Qt
class MainWindow(QWidget):
def __init__(self):
super().__init__()
self.label = QLabel()
self.label.setAlignment(Qt.AlignCenter)
font = self.label.font()
font.setPointSizeF(30)
self.label.setFont(font)
self.pb_add = QPushButton('ADD')
self.pb_add.clicked.connect(self._on_add)
self.pb_reset = QPushButton('RESET')
self.pb_reset.clicked.connect(self._on_reset)
self.number = 0
layout = QVBoxLayout()
layout.addWidget(self.label)
layout.addWidget(self.pb_add)
layout.addWidget(self.pb_reset)
self.setLayout(layout)
self._update_states()
def _update_states(self):
self.label.setNum(self.number)
def _on_add(self):
self.number += 1
self._update_states()
def _on_reset(self):
self.number = 0
self._update_states()
if __name__ == '__main__':
app = QApplication([])
mw = MainWindow()
mw.show()
app.exec()
Скриншот:
