簡體   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