簡體   English   中英

如何從 tkinter 中的回調 function 傳遞調用值

[英]how to pass call value from callback function in tkinter

我寫了這段代碼,我想使用

class saveselectvalue():
    def docallback(self , *args):
    value = combo.get()
    return value

root=tk.Tk()

root.title('Testing Tkinter Combobox With Sqllite')
root.geometry('500x600+150+80')

frame1 =tk.Frame(root, width=500, height=75, background="blue")
frame1.pack_propagate(False)
frame1.pack()

frame2 =tk.Frame(root, width=500, height=90, background="blue")
frame2.pack_propagate(False)
frame2.place(x=0 , y=77)

frame3 =tk.Frame(root, width=500, height=180, background="white")
frame3.pack_propagate(False)
frame3.place(x=0 , y=170)

combo=ttk.Combobox(frame1,width=15 , height=10 )
combo.place(x=300 , y=8)
df=sqltablename()
combo['values']=df.to_string(header=None , index=False)
valueselected=combo.bind("<<ComboboxSelected>>", saveselectvalue.docallback)
...
...
tree=ttk.Treeview(frame3)
tree.place(x=10 , y =0)
root.mainloop()

我想選擇在 combobox 中選擇的數據並使用它從 sqlite 數據庫中查詢,代碼如下

con=sqlite3.connect('foo.db')
c = con.cursor()
d=combobbox selected value
df = pd.read_sql_query("SELECT * FROM  {};".format(d),con)

誰能幫我做到這一點? 此致

您需要存儲此值,一種方法是在您的 class SaveSelectValue中創建一個屬性:

class SaveSelectValue():
  def __init__(self):
    self.value = None 

然后您的回調必須保存該值:

def docallback(self , *args):
  value = combo.get()
  self.value = value

要綁定回調,首先創建 class 的實例,然后使用它來綁定:

instanceSaveSelectValue = SaveSelectValue()
combo.bind("<<ComboboxSelected>>", instanceSaveSelectValue.docallback)

現在您可以隨意使用該屬性:

print(instanceSaveSelectValue.value)

暫無
暫無

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

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