Python 板


LINE

各位版上的高手早上好。 我这边在撰写GUI的时候遇到了一个创建元件必须用Global的问题,我的程式结构如下。 这只是我的程式片段,无法执行的。 def main_GUI(): window=tk.Tk() window.title('东山模具社--模具管理系统(V%s)'%VC) window.geometry('800x600') #定义视窗大小 #------规格搜寻GUI--------- def Sub_OM_generator(*args): #依据部位不同产生下拉式选单 forget_all_widget()#避免上一次变动没有清除到,残留在视窗上。 if Selected_part.get() == "下切": Selected_Tuple=Cut_OM_Tuple elif Selected_part.get() =="靠模盘": Selected_Tuple=Plate_OM_Tuple for index_r in range(2,(len(Selected_Tuple)+2)): #为了要让元件名称和位置相呼应方便管理Offset +2个Row globals()['Label'+str(index_r)+str(0)]=tk.Label(Specinfo,text= Selected_Tuple[index_r-2]) #Select_Tuple 的指标必须要减2因应前一行的Offset措施。 globals()['Label'+str(index_r)+str(0)].grid(row=(index_r),column= 0,sticky=tk.W) for index_c in range(1,4): globals()['Entry'+str(index_r)+str(index_c)]=tk.Entry(Specinfo ,width=10) globals()['Entry'+str(index_r)+str(index_c)].grid(row=(index_r) ,column=(index_c),sticky=tk.W) global _Specinfo_WN _Specinfo_WN=index_r #Specinfo fram 最後一个自动产生的元件流水号。 Central_Label.grid(row=1,column=1) Upper_Label.grid(row=1,column=2) Lower_Label.grid(row=1,column=3) Confirm_btn.grid(row=_Specinfo_WN+1,column=2) #把确认按钮跟清除资料的按钮放在最下面。 Clean_btn.grid(row=_Specinfo_WN+1,column=3) def Specinfo_search_btn():#按下搜寻按钮要执行的事情 table_name=Selected_part.get() #取得Table name input_list=[] for index_r in range(2,(_Specinfo_WN+1)): #从第二行开始抓资料,因应Offset的做法。 input_list.append(globals()['Label'+str(index_r)+str(0)].cget ("text")) #cget取得Label的内容 for index_c in range(1,4): input_list.append(globals()['Entry'+str(index_r)+str(index_c)] .get()) #将Entry的值放进List里面 sqlite_command=sqlite_search_command_generator(table_name,input_list) #产生查询命令 column_name,dimension=Retrive_column_name_from_sqlite(DB_name,table_ name) #取得栏位资料 data=Retrieve_data_from_sqlite(DB_name,sqlite_command) #从Sqlite取得资料 data_on_treeview(column_name, data, dimension)#把资料放进treeview Specinfo_label1=tk.Label(Specinfo,text="模具部位",font="标楷体 12") #把一定要建立的物件放主Function底下,可以避免用Global函数。 Central_Label=tk.Label(Specinfo,text="中心值",anchor='center') Upper_Label=tk.Label(Specinfo,text="正公差",anchor='center') Lower_Label=tk.Label(Specinfo,text="负公差",anchor='center') Selected_part=tk.StringVar(Specinfo) Part_OptionMenu=tk.OptionMenu(Specinfo, Selected_part, *Part_OM_Tuple) #显示选项,未来可以用变数处理。 Confirm_btn=tk.Button(Specinfo,text="查询",font="标楷体 12",command=Specinfo_search_btn) Clean_btn=tk.Button(Specinfo,text="清除所有条件",font="标楷体 12",command=forget_all_widget) Specinfo_help_btn=tk.Button(Specinfo,text="说明文件",font="标楷体 12",command=lambda:display_PDF(Specinfo_help)) Specinfo_label1.grid(row=0,column=0) Part_OptionMenu.grid(row=0,column=1) Selected_part.trace("w",Sub_OM_generator) #当下拉式选单状态改变时就呼叫下拉式选单产生器 执行的画面如下 https://imgur.com/hXUnpfB https://imgur.com/kFUZhKU https://imgur.com/DBGmenN 在执行def Sub_OM_generator(*args)这个Function 的时候我必须要用Global()才能创建Label跟EntryBox 请问高手这个有办法解决吗? 还是只能这样搞? --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.33.116.8 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1594180901.A.19D.html ※ 编辑: yimean (114.33.116.8 台湾), 07/08/2020 12:02:58
1F:→ killua12703: 用class做tkinter 07/08 12:49
2F:推 stlevi811101: https://youtu.be/RkaekNkIKNY 07/09 07:40
3F:→ stlevi811101: 影片後半部就是你的问题 所以改用class更系统化 07/09 07:44
4F:→ stlevi811101: https://i.imgur.com/mPM1mmm.png 官方文档范例 07/09 07:44
5F:→ stlevi811101: Stack Overflow有位Bryan Oakley回答很多相关问题 07/09 07:47
6F:→ stlevi811101: 「Best way to structure a tkinter application?」 07/09 07:48
7F:→ yimean: 感恩K大与S大的指导。 07/09 08:27







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Boy-Girl站内搜寻

TOP