1. 标签的制作
在这里插入import tkinter as tk #模块的导入
window=tk.Tk() #实例化一个窗口模块
window.title('这是我的控制台')#进行窗口的命名
window.geometry('300x400')#进行窗口大小的设定中间哪个是x不是乘号
la=tk.Label(window,text='这是window下的标签',bg='red',font=('宋体',6),height=10,width=10)#设置标签
la.pack()#进行标签的放置
window.mainloop()#进行不停的刷新,保证一直在window上显示代码片
``结果为`
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200424145813479.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L09ZTUtfU0s=,size_16,color_FFFFFF,t_70#pic_center)
# 2. button的设计与制作:
```python
在这里插入import tkinter as tk #模块的导入
window=tk.Tk() #实例化一个窗口模块
window.title('这是我的控制台')#进行窗口的命名
window.geometry('300x400')#进行窗口大小的设定中间哪个是x不是乘号
var=tk.StringVar()#声明一个字符串变量
la=tk.Label(window,textvariable=var,height=5,width=10)#设置标签
la.pack()#进行标签的放置
flag=False #定义一个全局变量
def hit_me():
global flag #声明一个全局变量
if flag==False: #必须加上false和true判断否则结果显示不出来
var.set('你点击了我')#给字符串赋值
flag=True
else:
var.set('')
flag=False
b1=tk.Button(window,text='点我',height=5,width=15,command=hit_me)#设计一个button按钮
b1.pack()
window.mainloop()#进行不停的刷新,保证一直在window上显示代码片
3.设定一个输入文本框,在show中可以设定输入的模式如果想文本显示就设定为None,如果想要设定为密码型的数据:show就设定为*,创建text时height设置的值为文本的行数,在进行文本的插入时,可以查入的位置有开始(start)、光标位置(insert)、固定坐标x.y
window = tk.Tk() # 实例化一个窗口模块
window.title('这是我的控制台') # 进行窗口的命名
window.geometry('300x400') # 进行窗口大小的设定中间哪个是x不是乘号
var = tk.StringVar() # 声明一个字符串变量
la = tk.Label(window, text='这是一个标签', height=5, width=10) # 设置标签
la.pack() # 进行标签的放置
e = tk.Entry(window, show=None)#设定一个文本输入框不需要设置文本框的大小
e.pack()
def hit_me_cursor():
var = e.get()
t.insert('insert', var)
def hit_me_end():
var = e.get()
t.insert('end', var)
b1 = tk.Button(window, text='insert_cursor', height=5, width=15, command=hit_me_cursor) # 设计一个button按钮
b1.pack()
b2 = tk.Button(window, text='insert_end', height=5, width=15, command=hit_me_end) # 设计一个button按钮
b2.pack()
t = tk.Text(window, height=2)#设计一个text文本框
t.pack()
window.mainloop() # 进行不停的刷新,保证一直在window上显示
![在这里插入图片描述]()
4列表框的设定:
```python
在这里插入代import tkinter as tk # 模块的导入
window = tk.Tk() # 实例化一个窗口模块
window.title('这是我的控制台') # 进行窗口的命名
window.geometry('300x400') # 进行窗口大小的设定中间哪个是x不是乘号
var = tk.StringVar() # 声明一个字符串变量
la = tk.Label(window, textvariable=var, height=5, width=10) # 设置标签
la.pack() # 进行标签的放置
def hit_me_cursor():
var.set(b2.get(b2.curselection()))
var2=tk.StringVar()
var2.set((11,33,55,66))
b2=tk.Listbox(window,listvariable=var2)#制作一个列表盒
b2.pack()
b1 = tk.Button(window, text='insert_cursor', height=5, width=15, command=hit_me_cursor) # 设计一个button按钮
b1.pack()
码片
- 5.进行单项选择框的的制作:
在这里插import tkinter as tk # 模块的导入
window = tk.Tk() # 实例化一个窗口模块
window.title('这是我的控制台') # 进行窗口的命名
window.geometry('300x400') # 进行窗口大小的设定中间哪个是x不是乘号
var = tk.StringVar() # 声明一个字符串变量
la = tk.Label(window, text='empty') # 设置标签
la.pack() # 进行标签的放置
def print_section():
la.config(text='你选择了'+var.get())#对标签里的属性进行修改
r1=tk.Radiobutton(window,variable=var,text='python',value='A',command=print_section)
r1.pack()#进行单选框的设定
r2=tk.Radiobutton(window,variable=var,value='B',text='C++',command=print_section)
r2.pack()
r3=tk.Radiobutton(window,variable=var,value='C',text='易语言',command=print_section)
r3.pack()
window.mainloop() # 进行不停的刷新,保证一直在window上显示
入代码片
- 6.范围移动的设定:tickinterval设置显示距离的间距,resolution设置精确度,length设置像素数,orient设置横向或者纵向:
import tkinter as tk # 模块的导入
window = tk.Tk() # 实例化一个窗口模块
window.title('这是我的控制台') # 进行窗口的命名
window.geometry('300x400') # 进行窗口大小的设定中间哪个是x不是乘号
var = tk.StringVar() # 声明一个字符串变量
la = tk.Label(window, text='empty') # 设置标签
la.pack() # 进行标签的放置
def print_section(v):#要传如变量
la.config(text='你移动了'+v)#对标签里的属性进行修改
s=tk.Scale(window,label='移动标尺',from_=3,to=10,orient=tk.HORIZONTAL,
length=200,showvalue=1,tickinterval=7,resolution=0.01,command=print_section)
s.pack()
window.mainloop() # 进行不停的刷新,保证一直在window上显示
结果如下:
-7.多选的盒子窗口:
import tkinter as tk # 模块的导入
window = tk.Tk() # 实例化一个窗口模块
window.title('这是我的控制台') # 进行窗口的命名
window.geometry('300x400') # 进行窗口大小的设定中间哪个是x不是乘号
var = tk.StringVar() # 声明一个字符串变量
la = tk.Label(window, text='empty') # 设置标签
la.pack() # 进行标签的放置
var=tk.IntVar()
var1=tk.IntVar()
def print_section():#要传如变量
if (var.get()==1)&(var1.get()==0):
la.config(text='我喜欢python课程')
elif (var.get()==0)&(var1.get()==1):
la.config(text='我喜欢C课程')
elif (var.get()==0)&(var1.get()==0):
la.config(text='我两个课程都不喜欢')
else :
la.config(text='我两个课程都喜欢')
c1=tk.Checkbutton(window,text='python',variable=var,onvalue=1,offvalue=0,command=print_section)
c1.pack()
c2=tk.Checkbutton(window,text='C++',variable=var1,onvalue=1,offvalue=0,command=print_section)
c2.pack()
window.mainloop() # 进行不停的刷新,保证一直在window上显示
结果为
- 7.菜单的制作:
import tkinter as tk # 模块的导入
window = tk.Tk() # 实例化一个窗口模块
window.title('这是我的控制台') # 进行窗口的命名
window.geometry('300x400') # 进行窗口大小的设定中间哪个是x不是乘号
var = tk.StringVar() # 声明一个字符串变量
la = tk.Label(window, text='empty') # 设置标签
la.pack() # 进行标签的放置
def do_job():
la.config(text='进行了操作')
menuber=tk.Menu(window) #把总的菜单绑在图形上
filemenu=tk.Menu(menuber,tearoff=2) #将file绑在menu的下面
menuber.add_cascade(label='File',menu=filemenu)#给menu的哪个起名字
filemenu.add_command(label='New',command=do_job)#设定File下的所有命令
filemenu.add_command(label='Open',command=do_job)
filemenu.add_command(label='Save',command=do_job)
filemenu.add_separator()
filemenu.add_command(label='exit',command=do_job)
editormenu=tk.Menu(menuber,tearoff=0)
menuber.add_cascade(label='File',menu=filemenu)
editormenu.add_command(label='New',command=do_job)
editormenu.add_command(label='Open',command=do_job)
editormenu.add_command(label='Save',command=do_job)
editormenu.add_separator()
editormenu.add_command(label='exit',command=do_job)
window.config(menu=menuber) #在图像界面进行显示
window.mainloop() # 进行不停的刷新,保证一直在window上显示
- 8在上面程序的基础上再加一个子列表:
import tkinter as tk # 模块的导入
window = tk.Tk() # 实例化一个窗口模块
window.title('这是我的控制台') # 进行窗口的命名
window.geometry('300x400') # 进行窗口大小的设定中间哪个是x不是乘号
var = tk.StringVar() # 声明一个字符串变量
la = tk.Label(window, text='empty') # 设置标签
la.pack() # 进行标签的放置
def do_job():
la.config(text='进行了操作')
menuber=tk.Menu(window) #把总的菜单绑在图形上
filemenu=tk.Menu(menuber,tearoff=2) #将file绑在menu的下面
menuber.add_cascade(label='File',menu=filemenu)#给menu的哪个起名字
filemenu.add_command(label='New',command=do_job)#设定File下的所有命令
filemenu.add_command(label='Open',command=do_job)
filemenu.add_command(label='Save',command=do_job)
filemenu.add_separator()
filemenu.add_command(label='exit',command=do_job)
editormenu=tk.Menu(menuber,tearoff=0)
menuber.add_cascade(label='File',menu=filemenu)
editormenu.add_command(label='New',command=do_job)
editormenu.add_command(label='Open',command=do_job)
editormenu.add_command(label='Save',command=do_job)
editormenu.add_separator()
editormenu.add_command(label='exit',command=do_job)
subnum=tk.Menu(filemenu,tearoff=0)
filemenu.add_cascade(label='Import',menu=subnum)
subnum.add_command(label='子标签',command=do_job)
window.config(menu=menuber) #在图像界面进行显示
window.mainloop() # 进行不停的刷新,保证一直在window上显示
9.对话框的弹出:
在编写这个指令的时候一定要调入import tkinter.messagebox 否则程序会报错:
import tkinter as tk # 模块的导入
import tkinter.messagebox
window = tk.Tk() # 实例化一个窗口模块
window.title('这是我的控制台') # 进行窗口的命名
window.geometry('300x400') # 进行窗口大小的设定中间哪个是x不是乘号
var = tk.StringVar() # 声明一个字符串变量
la = tk.Label(window, text='empty') # 设置标签
la.pack() # 进行标签的放置
def showinfo() :#显示正常信息
tk.messagebox.showinfo(title='h1',message='jfin')
def showwaring() :#显示警告信息
tk.messagebox.showwarning(title='h1',message='jfin')
def showerror() :#显示错误信息
tk.messagebox.showerror(title='h1',message='jfin')
def askquestion() :#有返回值yesorno
tk.messagebox.askquestion(title='h1',message='jfin')
def askyesno() :#有返回值有trueor false
tk.messagebox.askyesno(title='h1',message='jfin')
def askokcancle() :#要传如变量
tk.messagebox.askokcancle(title='h1',message='jfin')
b1=tk.Button(window,text='showinfo',height=1,width=30,command=showinfo).pack()
b2=tk.Button(window,text='showwaring',height=1,width=30,command=showwaring).pack()
b3=tk.Button(window,text='showerror',height=1,width=30,command=showerror).pack()
b4=tk.Button(window,text='askquestion',height=1,width=30,command=askquestion).pack()
b5=tk.Button(window,text='askyesno',height=1,width=30,command=askyesno).pack()
b6=tk.Button(window,text='askokcancle',height=1,width=30,command=askokcancle).pack()
window.mainloop() # 进行不停的刷新,保证一直在window上显示
- 画布的制作:
window=tk.Tk()
window.title('canvos')
window.geometry('300x400')
cv=tk.Canvas(window,bg='blue',height=100,width=300) #创建一个画布
x0,y0,x1,y1=20,20,70,70 #指定下面创建图形的位置
cv.create_line(x0,y0,x1,y1)#创建直线
cv.create_rectangle(x0,y0,x1,y1)#创建矩形
cv.create_oval(x0,y0,x1,y1,fill='red')#创建圆
cv.pack()
window.mainloop()on
在这里插入代码片
结果如下
tk图形界面的位置分布图如下:
- tk中属性位置摆放功能设定:
1.pack可以设置上(top)下(botton)左(left)右(right)
window=tk.Tk()
window.title('canvos')
window.geometry('300x400')
l1=tk.Label(window,text='top').pack(side='top') #放在最上面的中间位置
l1=tk.Label(window,text='bottom').pack(side='bottom')#放在最下面的中间位置
l1=tk.Label(window,text='left').pack(side='left')#放在最左面的中间位置
l1=tk.Label(window,text='right').pack(side='right')#放在最右面的中间位置
window.mainloop()
在这里插入代码片
2.第二种属性放置的方法:grim:它的放置方法走的是表格形式:
import tkinter as tk
window=tk.Tk()
window.title('canvos')
window.geometry('300x400')
for i in range(6):
for m in range(4):
tk.Label(window,text=1).grid(row=i,column=m,padx=20,pady=10)#px设置每个值之间的距离
window.mainloop()
3.使用place这个可以使用坐标定位进行属性位置的放置:
window=tk.Tk()
window.title('canvos')
window.geometry('300x400')
l1=tk.Label(window,text='这是place用法放置的地方')
l1.place(x=100,y=30,anchor='nw')
window.mainloop()on
在这里插入代码片