繁体   English   中英

如何在 tkinter 中擦除一个小部件/文本的最后一个字符

[英]how erase the last character of one widget/text in tkinter

我有一个计算器,我们可以在屏幕上观看已经写的数字,但我想插入一个按钮来擦除一个字符(最后一个)并且不能,只能擦除第一个字符

这是代码

 def DEL(self,):
    self.pantalla.configure(state="normal")
    self.operacion = self.operacion[:-1]
    self.pantalla.delete("")
    self.pantalla.configure(state="disabled")

pd self.pantalla 是文本,self.operacion 是计算变量,谢谢...

如果您使用tk.Entry()那么您可能需要

    entry.delete( len(entry.get())-1 )

如果您使用tk.Text()那么您可能需要

    text.delete('end-2c', 'end')

如果您使用tk.StringVar()那么您可能需要

    string_var.set( string_var.get()[:-1] )

最小的工作代码:

import tkinter as tk
        
# --- functions ---

def on_click():
    print('Entry:', entry.get())
    entry.delete(len(entry.get())-1)

    print('StringVar:', string_var.get())
    string_var.set( string_var.get()[:-1] )

    print('Text:', text.get('0.0', 'end'))
    text.delete('end-2c', 'end')

# --- main ---

root = tk.Tk()

entry = tk.Entry(root)
entry.pack()

string_var = tk.StringVar(root)
entry_var = tk.Entry(root, textvar=string_var)
entry_var.pack()

text = tk.Text(root)
text.pack()

button = tk.Button(root, text='DELETE', command=on_click)
button.pack()

root.mainloop()   

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM