簡體   English   中英

更新 tkinter 中的標簽

[英]Update Labels in tkinter

我在我的代碼中添加了一個“選擇文件部分”。 我想有兩個選項,第一個選擇文件路徑,第二個輸入文件路徑。

我無法實現的另一個功能是,如果用戶選擇文件路徑,該路徑將出現在入口部分。

這是我正在談論的代碼部分:

from tkinter import filedialog
import tkinter as tk

class open_file:
    def __init__(self, master):
        self.master = master
        self.file_path = ''

        self.b1 = tk.Button(master,
               text = 'Open',
               command = self.open_file).grid(row=0, column=1)

        v = tk.StringVar(root, value = self.file_path)
        self.l1 = tk.Entry(master, width=24, textvariable=v).grid(row=0, column=0)


    def open_file(self):
        self.file_path = filedialog.askopenfilename(filetypes = (("Python Files", "*.py")
                                                             ,("All files", "*.*") ))

root = tk.Tk()
app = open_file(root)
root.mainloop()

由於您有一個與文本鏈接的 StringVar,因此您需要使用StringVar.set()來設置條目的文本。

來自http://effbot.org/tkinterbook/variable.htm:

set 方法更新變量,並通知所有變量觀察者。 您可以傳入正確類型的值或字符串。

您已經在 StringVar 上設置了內容,但它們不會在 self.file_path 更改時動態更新。 在您的情況下,您必須在 __init__ function 中將 StringVar (v) 設為 class 成員

 self.v = tk.StringVar(root, value = self.file_path)

此外,當您想更新文件路徑時,請通過self.v.set(String)設置它

def open_file(self):
        self.file_path = filedialog.askopenfilename(filetypes = (("Python Files", "*.py")
                                                            ,("All files", "*.*") ))
        if self.file_path:  #check if file path is not None or empty
                self.v.set(self.file_path)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM