python基础:gui编程
2019-02-07 13:08
155 查看
由于使用到了上一篇博文所创建的数据,所以可以先回顾下:https://blog.csdn.net/eyeofeagle/article/details/86766141
python提供的gui编程库和java的gui类似,都是提供输入框,按钮,窗口等控件,来进行页面展示的控制
1,gui的几本组件:窗口,文本,按钮
window_label.py
#创建窗口: 显示文字,按钮,弹框 from tkinter import * #显示文本内容 Label(text="hello world").pack() #启动窗口 mainloop()
window_button.py
#窗口: 放入按钮 from tkinter import * from tkinter.messagebox import showinfo #1,获取窗口 window=Tk() #2, 定义按钮 def reply(): showinfo(title="title1",message="按钮被点击") button=Button(window,text="press this !", command=reply) #3,启动窗口 button.pack() window.mainloop()
2, gui几本组件:输入框(输入输出)
window_input.py
#设置输入框 from tkinter import * from tkinter.messagebox import showinfo #创建窗口 window=Tk() window.title("输入输出") window.iconbitmap("a.jpg") #设置输入框 Label(window, text="输入name").pack() ent=Entry(window) ent.pack(side="top") #创建提交按钮 def reply(name,window): showinfo(title="reply", message="hello %s" %name) window.quit() btn=Button(window,text="submit", command=( lambda: reply(ent.get(),window ) )) btn.pack(side="left") #启动窗口 window.mainloop()
window_input2.py
#输入框 from tkinter import * from tkinter.messagebox import showinfo,showerror import shelve #定义变量 shelve_file_name="../oop/data/shelve_obj" db=shelve.open(shelve_file_name) fieldnames=("name","age","job") def fetchRecord(): key = entries["key"].get()#获取:输入key这个输入框的值 try: record = db[key] except: showerror("title=error", message="no such key") else: for field in fieldnames: ent=entries[field] ent.delete(0, len(str(entries[field].get()) )) #输入框:删除原数据 entries[field].insert(0, getattr(record, field))# 输入框:设置正确数据 def updateRecord(): #取出db字典文件的值 db_key=entries['key'].get() if db_key in db: record=db[db_key] else: from chapter1.oop.class_obj import teacher record=teacher(name="?",age="?") #对象赋值 for field in fieldnames: setattr(record,field, entries[field].get()) #保存数据 db[db_key]=record #定义方法 def mkWidgets(): global entries window=Tk() window.title("people shelve") form=Frame(window) form.pack() #遍历属性元组 entries={} for (index, label) in enumerate(("key",)+fieldnames): lab=Label(form, text=label) ent=Entry(form) lab.grid(row=index, column=0) ent.grid(row=index, column=1) print(index, label,ent) entries[label]=ent #收集:所有的输入框对象, {key ,输入框} #设置按钮 Button(window,text="fetch", command=fetchRecord).pack(side="left") Button(window, text="update", command=updateRecord).pack(side="left") Button(window, text="quit", command=window.quit()).pack(side="right") return window #创建窗口 window=mkWidgets() window.mainloop() db.close()
获取数据:
更新数据:
相关文章推荐
- Python基础<十五:GUI编程>
- python基础知识-GUI编程-TK-StringVar
- python基础知识-GUI编程-TK-StringVar
- Python基础 GUI 编程 Tkinter
- Python基础教程(十二):GUI编程、版本区别、IDE
- Python基础语法(4)——GUI编程及猜数字游戏
- Python GUI编程各种实现的对比
- python图形界面GUI编程之wxpython安装
- 鱼c笔记——Python的GUI编程(一):接触Tkinter
- Python核心编程--学习笔记--3--Python基础
- Python GUI编程各种实现的对比
- python基础编程:登录界面
- python网络编程基础(连载)05 多进程
- Python学习基础(9):函数式编程
- python socket编程基础(思维导图)
- ABAP--关于SAP Control Framework(入门GUI编程的不错的基础介绍)
- Python -- Gui编程 -- Tkinter的使用 -- 菜单与画布
- Python GUI编程各种实现的对比
- Python编程之美 - 初识GUI程序
- Python学习笔记(一)——编程0基础数据分析进阶之路