Как стирать по одному символу (цифре)
У меня есть кнопка очистки калькулятора, а есть кнопка (Clear_2), которая должна очищать по одному символу (цифре).
Как мне это сделать в методе def clear_symbol(self)?
def add_functions(self):
self.Zero.clicked.connect(lambda: self.write_number(self.Zero.text()))
self.One.clicked.connect(lambda: self.write_number(self.One.text()))
self.Two.clicked.connect(lambda: self.write_number(self.Two.text()))
self.Three.clicked.connect(lambda: self.write_number(self.Three.text()))
self.Four.clicked.connect(lambda: self.write_number(self.Four.text()))
self.Five.clicked.connect(lambda: self.write_number(self.Five.text()))
self.Six.clicked.connect(lambda: self.write_number(self.Six.text()))
self.Seven.clicked.connect(lambda: self.write_number(self.Seven.text()))
self.Eight.clicked.connect(lambda: self.write_number(self.Eight.text()))
self.Nine.clicked.connect(lambda: self.write_number(self.Nine.text()))
self.Plus.clicked.connect(lambda: self.write_number(self.Plus.text()))
self.Minus.clicked.connect(lambda: self.write_number(self.Minus.text()))
self.Divide.clicked.connect(lambda: self.write_number(self.Divide.text()))
self.Multiply.clicked.connect(lambda: self.write_number(self.Multiply.text()))
self.Dot.clicked.connect(lambda: self.write_number(self.Dot.text()))
self.BracketLeft.clicked.connect(lambda: self.write_number(self.BracketLeft.text()))
self.BracketRight.clicked.connect(lambda: self.write_number(self.BracketRight.text()))
self.Equal.clicked.connect(lambda: self.result())
self.Clear.clicked.connect(lambda: self.clear_result())
self.Clear_2.clicked.connect(lambda: self.clear_symbol())
def write_number(self, number):
if self.label.text() == '0':
self.label.setText(number)
else:
self.label.setText(self.label.text() + number)
def result(self):
if not self.label.text():
return
res = eval(self.label.text())
self.label.setText(str(round(res, 6)))
def clear_result(self):
self.label.setText("")
def clear_symbol(self):
self.label.setText
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 шт):
Автор решения: Эникейщик
→ Ссылка
Брать текущий текст txt, и сразу же выводить txt[:-1].
...
def clear_symbol(self):
self.label.setText(self.label.text()[:-1])
...