Как стирать по одному символу (цифре)

У меня есть кнопка очистки калькулятора, а есть кнопка (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])
...
→ Ссылка