使用python版本3.0以上
首先我们来建立一个窗口:
import tkinter as tk
root = tk.Tk()
root.title("我的窗口") #窗口标题
root.iconbitmap("my_icon.ico") #窗口图标
root.geometry("500x500+100+100") #窗口尺寸500x500 100+100分别是 X轴Y轴距离
root.resizable(False, False) #窗口禁止放大缩小
root.mainloop() #窗口刷新
设置窗口的再电脑桌面剧中小案例
函数 | 说明 |
winfo_screenwidth() | 屏幕宽度 |
winfo_screenheight() | 屏幕长度 |
winfo_reqwidth() | 窗口宽度 |
winfo_reqheight() | 窗口长度 |
import tkinter as tk
def get_screen_size(win):
return win.winfo_screenwidth(),win.winfo_screenheight()
def center_window(root, width, height):
screenwidth = root.winfo_screenwidth()
screenheight = root.winfo_screenheight()
size = '%dx%d+%d+%d' % (width, height, (screenwidth - width)/2, (screenheight - height)/2)
root.geometry(size)
root = tk.Tk()
root.title('居中窗口')
center_window(root, 600, 600)
root.mainloop()
能创建窗体后,我们就来熟悉常用的控件
控件 | 描述 |
Button | 按钮控件,与Label相似,除此之外提供鼠标悬浮,按下,释放以及键盘活动/事件 |
Canvas | 画布控件;显示图形元素如线条或文本 |
CheckButton | 多选框控件;用于在程序中提供多项选择框(与Html的checkbox类似) |
Entry | 输入控件;用于收集键盘输入 |
Frame | 框架控件;在屏幕上显示一个矩形区域,多用来作为容器 |
Label | 标签控件;可以显示文本和位图 |
Listbox | 列表框控件;在Listbox窗口小部件是用来显示一个字符串列表给用户 |
Menubutton | 菜单按钮控件,用于显示菜单项。 |
Menu | 菜单控件;按下MenuButton后弹出的选项列表,显示菜单栏,下拉菜单和弹出菜单 |
Message | 消息控件;与Label类似,用来显示多行文本,与label比较类似 |
Radiobutton | 单选按钮控件;显示一个单选的按钮状态(与Html的radio类似) |
Scale | 范围控件;显示一个数值刻度,为输出限定范围的数字区间 |
Scrollbar | 滚动条控件,当内容超过可视化区域时使用,为Text、Canvas、Listbox、及Enter等支持的控件提供滚动功能 |
Text | 文本控件;用于显示多行文本 |
Toplevel | 容器控件;用来提供一个单独的对话框,和Frame比较类似 |
Spinbox | 输入控件;与Entry类似,但是可以指定输入范围值 |
PanedWindow | PanedWindow是一个窗口布局管理的插件,可以包含一个或者多个子控件。 |
LabelFrame | labelframe 是一个简单的容器控件。常用与复杂的窗口布局。 |
tkMessageBox | 用于显示你应用程序的消息框。showinfo(title='',message='') |
下面我们来操作一个demo
import tkinter as tk
#窗体
root = tk.Tk()
root.title("我的窗口")
root.geometry("500x500+300+300")
root.resizable(False, False)
#我们来创建一个button按钮
btn1=tk.Button(root,text='我是按钮1')
btn1.pack()
#也可以写成
btn2=tk.Button(root,text='我是按钮2').pack()
root.mainloop()
控件显示设置模式是:
变量=tk.控件(所在窗体,text=名称,fg=字体颜色,bg=背景颜色,font=(字体,大小),width=宽度,height=高度)
设置完成之后,我们显示会有3种:目前从pack说起!
设置完成后,变量.pack()执行
#我们来创建一个button按钮
btn1=tk.Button(root,text='我是按钮1')
btn1.pack()
#也可以写成
btn2=tk.Button(root, text='我是按钮2', fg='red',bg='blue', font=('黑体',10),width="20",height='5' ).pack()
pack作为控件显示和控件定位参数使用
参数 | 内部参数说明 |
expand | expand='yes' 水平上下剧中 |
fill | fill = ‘x’: 表示在水平方向充满整个父控件 fill = ‘y’: 表示在垂直方向充满整个父控件 fill = ‘both’:表示充满整个父控件 |
side | side=tk.TOP 表示对应窗体的 上下左右 side=tk.BOTTOM side=tk.LEFT side=tk.RIGHT *类似于浮动 |
anchor | 一共有8个方向:东,西,南,北,东南,西南,东北,西北.... 分别是:e,w,n,s,ne,se,nw,sw 这里后续更新 |
ipadx,ipady | 类似于padding,增大X方向或者Y方向空间 |
in_ | python关键字换掉对应的text值 |
forget() | 隐藏:元素变量.forget()对应pack()显示 |
下面我们来使用menu
import tkinter as tk
#窗体
root = tk.Tk()
root.title("我的窗口")
root.geometry("500x500+300+300")
root.resizable(False, False)
menubar=tk.Menu(root)
filemenu=tk.Menu(menubar,tearoff = 0)
filemenu.add_command(label='打开文件')
filemenu1=tk.Menu(menubar,tearoff = 0)
filemenu1.add_command(label='选择编辑文件')
filemenu1.add_command(label='选择搜索文件')
menubar.add_cascade(label='文件', menu=filemenu)
menubar.add_cascade(label='编辑', menu=filemenu1)
menubar.add_cascade(label='Quit',command=root.destroy)
root.config(menu=menubar)
root.mainloop()