[問題] OptionMenu元件應用

看板Python作者 (累人啊....)時間8年前 (2017/05/05 11:19), 編輯推噓0(0018)
留言18則, 2人參與, 最新討論串1/1
如題,這是我最近在測試的一個範例 這個元件要能觸發某個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

05/05 22:09, , 1F
05/05 22:09, 1F

05/05 22:48, , 2F
建議給個能跑的範例
05/05 22:48, 2F

05/05 23:49, , 3F

05/06 00:36, , 4F

05/06 00:41, , 5F
https://goo.gl/yQmnju 找到最後還是原始碼最好
05/06 00:41, 5F

05/06 00:41, , 6F
抄他的建構子最原生XD
05/06 00:41, 6F

05/06 12:59, , 7F
不行耶,有問題 NameError: name 'tk' is not defined
05/06 12:59, 7F

05/06 13:02, , 8F
把import tkinter as tk拿掉,替換成tkinter._setitXXX
05/06 13:02, 8F

05/06 13:02, , 9F
這樣就會有錯,是為什麼??
05/06 13:02, 9F

05/06 13:51, , 10F
from tkinter import * 意思是指把整個 tkinter code
05/06 13:51, 10F

05/06 13:52, , 11F
在你當前環境下執行一次,無底線的方法,函數都會變成
05/06 13:52, 11F

05/06 13:53, , 12F
能夠直接取用,import tkinter 才有包含 ._setit
05/06 13:53, 12F

05/06 13:54, , 13F
你自己寫個 A.py 在 B.py 用 from 和 import 試試看
05/06 13:54, 13F

05/06 14:01, , 14F
05/06 14:01, 14F

05/06 14:02, , 15F
上面是連續執行結果,可能有點誤導,你可以分兩次測試
05/06 14:02, 15F

05/06 14:03, , 16F
1. _setit 在 from tkinter import * 時不會被引入
05/06 14:03, 16F

05/06 14:07, , 17F
2. 好像沒第二點惹XD
05/06 14:07, 17F

05/06 15:28, , 18F
懂了,謝謝
05/06 15:28, 18F
文章代碼(AID): #1P2-ybPu (Python)