亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 Tkinter 中將參數向下傳遞給方法

在 Tkinter 中將參數向下傳遞給方法

有只小跳蛙 2023-07-11 14:06:36
我正在努力讓我的方法正常工作。我考慮過使用lambda我為另一個問題所做的函數并且有效,但是在這里它似乎不起作用。我正在嘗試將函數更改為方法,但由于某種原因,我的方法無法正常工作,因為它沒有引用樹。我嘗試過使用一個lambda函數,盡管它不起作用。我的錯誤:NameError: name 'tree' is not definedException in Tkinter callbackTraceback (most recent call last):  File "/usr/lib/python3.8/tkinter/__init__.py", line 1883, in __call__    return self.func(*args)  File "/home/bitvivaz/Documents/Software Development/Python/PasswordManager/mainFrame.py", line 54, in select    print([tree.item(x) for x in tree.selection()])NameError: name 'tree' is not defined這是我的代碼:import tkinter as tkimport tkinter.ttk as ttkfrom encryption import encrypted_password, decrypt_passwordimport backend as dbdef get_credentials(tree):    '''Retrieves all credentials from the database and inserts it into the tree widget'''    for row in db.show_credentials():        tree.insert("", 'end', text=row['name'], values=(            row['username'], decrypt_password(row['password'])))class MainframeApp:    def __init__(self, master=None):        # build ui        frame_main = ttk.Frame(master)        frame_main.config(height='600', width='600')        frame_main.grid()        # Creates tree widget        tree = ttk.Treeview(frame_main)        tree["columns"] = ("one", "two")        tree.column("#0")        tree.column("one")        tree.column("two")        tree.heading("#0", text="Website")        tree.heading("one", text="Username")        tree.heading("two", text="Password")        tree.grid(padx='5', pady='5', rowspan='20')        get_credentials(tree)        tree.bind("<<TreeviewSelect>>", self.select, "+")        button_add = ttk.Button(frame_main)
查看完整描述

1 回答

?
MMMHUHU

TA貢獻1834條經驗 獲得超8個贊

當您使用結構時class,某些變量可跨方法使用(類或實例變量),而其他變量則不可使用(局部變量)。

在您的情況下,您需要將跨方法所需的變量定義為實例變量,即,而不是:

tree = ttk.Treeview(frame_main)

您聲明:

self.tree = ttk.Treeview(frame_main)

然后您可以跨方法引用該變量作為self.tree


查看完整回答
反對 回復 2023-07-11
  • 1 回答
  • 0 關注
  • 211 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號