看板 Python 關於我們 聯絡資訊
如題,這是我最近在測試的一個範例 這個元件要能觸發某個function,然後要能更新item class MainWnd: def __init__(self,Frame): self.SelectName = StringVar() self.Names = ["aa","bb"] self.OptModuleName = OptionMenu(app,self.SelectName,*self.Names, command=self.SelectModule) self.OptModuleName.pack() self.BtnUpdate = Button(app, text="Update",command=self.Update) self.BtnUpdate.pack() def SelectModule(self,value): print("choose",value) def Update(self): print("Update Obtion Menu") self.OptModuleName['menu'].delete(0,'end') self.Names.clear() self.Names = ["cc","dd"] for Item in self.Names: self.OptModuleName['menu'].add_command(label=Item, command=self.SelectModule) 經過多次的修修改改,不是選了以後畫面不會顯示選中的item 就是會顯示TypeError,指出SelectModule有少參數等等問題 我想問題應該是在紅色標示的部份,但要怎麼修改呢? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.137.82.93 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1493954341.A.678.html
s860134: http://bfy.tw/BcJg 05/05 22:09
s860134: 建議給個能跑的範例 05/05 22:48
tyc5116: http://ideone.com/d9G4VI 05/05 23:49
s860134: http://ideone.com/sctad0 05/06 00:36
s860134: https://goo.gl/yQmnju 找到最後還是原始碼最好 05/06 00:41
s860134: 抄他的建構子最原生XD 05/06 00:41
tyc5116: 不行耶,有問題 NameError: name 'tk' is not defined 05/06 12:59
tyc5116: 把import tkinter as tk拿掉,替換成tkinter._setitXXX 05/06 13:02
tyc5116: 這樣就會有錯,是為什麼?? 05/06 13:02
s860134: from tkinter import * 意思是指把整個 tkinter code 05/06 13:51
s860134: 在你當前環境下執行一次,無底線的方法,函數都會變成 05/06 13:52
s860134: 能夠直接取用,import tkinter 才有包含 ._setit 05/06 13:53
s860134: 你自己寫個 A.py 在 B.py 用 from 和 import 試試看 05/06 13:54
s860134: http://imgur.com/a/qfZvG 05/06 14:01
s860134: 上面是連續執行結果,可能有點誤導,你可以分兩次測試 05/06 14:02
s860134: 1. _setit 在 from tkinter import * 時不會被引入 05/06 14:03
s860134: 2. 好像沒第二點惹XD 05/06 14:07
tyc5116: 懂了,謝謝 05/06 15:28