GUI
- TKinter: 绑定了TK GUI工具集,Python包装的Tcl代码
- PyGTK:TKinker的代替品 wxPython:跨平台的PythonGUI
- PyQt:跨平台,商业授权有问题
#调用其中的测试包、测试集
import tkinker
tkinter._test()
复制代码
import tkinker
gui = tkinker.Tk()
#出现基本的大框
base.mainloop()
#实现消息循环,用户交互
复制代码
- tkinter常用组件
-
按钮 复制代码
-
Button 按钮组件 复制代码
-
RadioButton 单选框组件 复制代码
-
CheckButton 选择按钮组件 复制代码
-
Listbox 列表框组件 复制代码
-
文本输入组件 复制代码
-
Entry 单行文本框组件 复制代码
-
Text 多行文本框组件 复制代码
-
标签 复制代码
-
Lable 复制代码
标签组件,可以显示图片和文件
-
Message 标签 复制代码
-
菜单 复制代码
-
menu 复制代码
-
menubutton 复制代码
-
滚动条 复制代码
-
scale 复制代码
-
scrollbar 复制代码
-
其他常用组件 复制代码
-
canvas 复制代码
-
frame 复制代码
-
toplevel 复制代码
#lable 的例子,大概流程
import tkinter
base = tkinter.Tk()#1.创建了总面板
#负责标题
base.wm_title("label test")
#text的位置是base(指定组件的父组件,再利用组件的属性对组件进行设置,此处添加相应代码)
lb = tkinter.Label(base, text="Python lable")
#给相应的组件安排布局,此处用pack
lb.pack()
#最后启动总面板的消息循环
base.mainloop()
复制代码
- 简单的讲Button
import tkinter
def show_label():
global base
lb = tkinter.Label(base, text="show_label")#标签细节上的东西以后有空再补充
lb.pack()
base = tkinter.Tk()
btn = tkinter.Button(base, text="show_label", command=show_label)
#如果不加command那句话指定函数,button会失效
#然后每按一次就调用函数增加标签
#此处详解等会贴张图
btn.pack(side=tkinter.TOP, expand=tkinter.YES, fill=tkinter.BOTH)
base.mainloop()
复制代码
-
以下讲标签和布局,都写进注释里了 复制代码
import tkinter
base = tkinter.Tk()
lb1 = tkinter.Label(base, text="qq号:", background="green").grid(row=0, sticky=tkinter.W)
tkinter.Entry(base).grid(row=0, column=1, sticky=tkinter.E)
#row column编号从0开始
#sticky:N,E,S,W表示上下左右,用来决定组件从哪个方向开始
#ipadx,padx等参数还没用过,等以后再说吧。。。。。。
#rowspan,columnspan,表示跨行,跨列数量#@¥%¥%。。。。。。。
lb2 = tkinter.Label(base, text="密码:", background="green").grid(row=1, sticky=tkinter.W)
tkinter.Entry(base).grid(row=1, column=1, sticky=tkinter.E)
btn = tkinter.Label(base, text="登录").grid(row=2, column=1, sticky=tkinter.W)
base.mainloop()
#还有个place布局,emmmmmm有空再看吧。。
#分绝对布局和相对布局,前者用x,y参数,后者用relx,rely,relheight,relwidth
复制代码
-
以下是bind()简单应用 复制代码
import tkinter
def click(event):
global base
lb = tkinter.Label(base, text="thanks for your click")
lb.pack()
base = tkinter.Tk()
lb = tkinter.Label(base, text="please click")
lb.bind("<Button-1>", click)#绑定消息与处理函数
lb.pack()
base.mainloop()
复制代码
-
都是些简单易理解的代码 复制代码
import tkinter
def reg():
name = e1.get()
pd = e2.get()
t1 = len(name)
t2 = len(pd)
if name == "4902" and pd == "4902":
lb3["text"] = "登陆成功"
else:
lb3["text"] = "用户名或密码错误"
e1.delete(0, t1)
e2.delete(0, t2)
base = tkinter.Tk()
lb1 = tkinter.Label(base, text="username")
lb1.grid(row=0, column=0, stick=tkinter.W)
e1 = tkinter.Entry(base)
e1.grid(row=0, column=1, stick=tkinter.E)
lb2 = tkinter.Label(base, text="password")
lb2.grid(row=1, column=0, stick=tkinter.W)
e2 = tkinter.Entry(base)
e2.grid(row=1, column=1, stick=tkinter.E)
e2['show'] = '*'
btn = tkinter.Button(base, text="register", command=reg).grid(row=2, column=1, stick=tkinter.E)
lb3 = tkinter.Label(base, text="").grid(row=3)
base.mainloop()
复制代码
3.20-3.24学习总结
- 基本都是在狂补mySQL和GUI,以及一些Python里乱七八糟的东西,不过记笔记还是很有用的,确实感觉学的东西要敲一遍才真的有帮助,虽然感觉这几天学的杂、不知从何记起,(舍友还在敲代码。。。)但看了舍友整齐的掘金专栏,我也想把每天学的东西好好整理到上面了,加油吧,其实也没遇到太多难解决的问题,加油加油!