更改标签文本,Tkinter

2024-06-16 14:14:15 发布

您现在位置:Python中文网/ 问答频道 /正文

下面是我的代码片段:

def message(name, button):
    button['state'] = DISABLED
    mgs_label = ttk.Label(root)

   if button["text"] == "Encryption":

       mgs_label.pack_forget()
       mgs = encryption(name)
       mgs_label = ttk.Label(root, text=mgs).pack(side=LEFT)

   if button["text"] == "Decryption":

      mgs_label.pack_forget()
      mgs = decryption(name)
      mgs_label = ttk.Label(root, text=mgs).pack(side=LEFT)

当我点击按钮时,无论是加密按钮还是解密按钮,它都会出现在提到的位置。 以下是快照: image1

当我点击另一个按钮时,文本位于前一个按钮之后,我想删除前一个文本,然后显示最后一个mgs

第二个快照:image2

即使我尝试创建全局变量,但问题是加密或解密已完成,但mgs未在GUI上显示。以下是用于此的代码:

encryption_label = ttk.Label(root)
decryption_label = ttk.Label(root)
def message(name, button):
    button['state'] = DISABLED
    global encryption_label, decryption_label
    if button["text"] == "Encryption":

       if decryption_label.winfo_exists():
          decryption_label.pack_forget()

       mgs = encryption(name)
       encryption_label["text"] = mgs
       encryption_label.pack(side=LEFT)

    if button["text"] == "Decryption":

       if encryption_label.winfo_exists():
          encryption_label.pack_forget()

    mgs = decryption(name)
    decryption_label["text"] = mgs
    decryption_label.pack(side=LEFT)

Tags: textnameifbuttonroot按钮sidelabel
1条回答
网友
1楼 · 发布于 2024-06-16 14:14:15

我建议只创建一次标签,并使用label.configure更改文本。 您应该提供一个工作示例,而不是代码段。我给你做了一个。 谢谢你的提问

import tkinter as tk
from tkinter import ttk
def e():
    message(None,x_button)
def d():
    message(None,y_button)
def message(name, button):
    #button['state'] = tk.DISABLED

    if button["text"] == "Encryption":
        mgs_label.configure(text = 'encrypted stuff')

    if button["text"] == "Decryption":
        mgs_label.configure(text = 'decrypted stuff')
  
root = tk.Tk()
x_button = tk.Button(root,text = 'Encryption',
                     command = e)
y_button = tk.Button(root,text = 'Decryption',
                    command = d )
mgs_label = ttk.Label(root)
y_button.pack()
x_button.pack()    
mgs_label.pack()
root.mainloop()

相关问题 更多 >