python 学习

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#图形用户界面
#关于Tkinter内置库,Python的标准GUI库,支持win,Linux,UNIX,Macintosh
#tk接口是Tk图形用户界面工具包标准的Python接口

#图像化编程的基本步骤
#导入Tkinter模块
#创建GUI根窗口
#添加人机交互控件并编写相应的函数
#在主事件循环中等待用户触发事件响应
import tkinter
master=tkinter.Tk() #创建顶层窗口对象
master.title("这是一个窗口")
master.geometry("300x120")
master.mainloop() #主事件循环

from tkinter import*
import tkinter.messagebox #导入Tkinter模块的弹窗组件
master=Tk()
master.title("这就是个窗口")
master.geometry("500x280")
def button_clicked(): #按钮单击响应函数
tkinter.messagebox.showinfo("Message","Holle World!!!")
#弹出消息提示框
btn1=Button(master,text="hello",command=button_clicked)
btn1.pack() #定义按钮
master.mainloop()

#坐标布局管理器
#用于组织和管理在父组件中子组件的布局方式
#pack(块) grid(表格) place

#pack
#选项
#side 停靠在父组件的那一边 TOP(默认),'BUTTOM','LEFT','RIGHT'
#anchor 停靠对齐方式 对应东西南北中及4个角'n','s','w','c','center'(默认),'nw','sw','sc','ne'
#fill 填充空间 'x','y','both','none'
#expend 扩展空间 0或1
#ipadx,ipady 组件在x/y方向上填充的空间大小 单位为c(厘米),m(毫米),i(英寸),p(打印机的点)
#padx,pady 组件外部在x/y方向上的填充空间大小 同上
from tkinter import *
root=Tk();root.title("登录")

f1=Frame(root);f1.pack() #用户名
f2=Frame(root);f2.pack() #密码
f3=Frame(root);f3.pack() #按钮
Label(f1,text="用户名").pack(side=LEFT)
Entry(f1).pack(side=LEFT)

Label(f2,text="密码").pack(side=LEFT)
Entry(f2,show="*").pack(side=LEFT)

Button(f3,text="登录").pack(side=RIGHT)
Button(f3,text="取消").pack(side=RIGHT)
root.mainloop()

#grid
#选项
#column 单元格列号 从0开始的正整数
#columnspan 列跨度 正整数
#row 单元格行号 从0开始的正整数
#rowspan 行跨度 正整数
#ipadx,ipady 组件在x/y方向上填充的空间大小 单位为c(厘米),m(毫米),i(英寸),p(打印机的点)
#padx,pady 组件外部在x/y方向上的填充空间大小 同上
#slicky 对应东西南北中及4个角'n','s','w','c','center'(默认),'nw','sw','sc','ne',可以紧贴多个边角。例如tk.N,tk.S
from tkinter import *
master=Tk();master.title("登录")

Label(master,text="用户名").grid(row=0,column=0)
Entry(master).grid(row=0,column=1,columnspan=2)

Label(master,text="密码").grid(row=1,column=0)
Entry(master,show="*").grid(row=1,column=1,columnspan=2)

Button(master,text="登录").grid(row=3,column=1,sticky=E)
Button(master,text="取消").grid(row=3,column=2,sticky=W)
master.mainloop()

#place
#选项
#x,y 绝对坐标 从0开始的正整数
#relx,rely 相对坐标 取0.0~1.0的值
#width,heigth 宽高的绝对值 正整数,单位pixel
#rewidth,reheigth 宽高的相对值 取0.0~1.0的值
#anchor 对应东西南北中及4个角 'n','s','w','c','center'(默认),'nw','sw','sc','ne'
from tkinter import*
root=Tk();root.title("登录")

root['width']=200;root['height']=80

Label(root,text="用户名",width=6).place(x=1,y=1)
Entry(root,width=20).place(x=45,y=1)

Label(root,text="密码",width=6).place(x=1,y=20)
Entry(root,width=20,show="* ").place(x=45,y=20)

Button(text="登录",width=8).place(x=40,y=40)
Button(text="取消",width=8).place(x=110,y=40)
root.mainloop()