tkinter图形化界面编程专题学习

阅读: 评论:0

tkinter图形化界面编程专题学习

tkinter图形化界面编程专题学习

本文所有代码思路均为应老师所有,其他为笔者整理以及听课笔记(本文可能非全部内容,后面学困了学废了打不动代码了)

1.基础内容

import tkinter as tk
from PIL import Image,ImageTkdef my():pwin.destroy()win.deiconify()win = tk.Tk()
#ry('320x240+100+50') #长320宽240 右100,下50
win['width']=320   #可以用win.keys()查看哪些可以这样写
win['height']=240 
win.title('tkinter图形化专题学习')#win.iconbitmap('my.ico')
img=ImageTk.PhotoImage(image=Image.open('1.gif','r'))
win.iconphoto(False,img)
#win.withdraw()#临时退出
#win.deiconify()#恢复
#win.iconify()#最小化
#win.destroy()#关掉
#help(win.state)
"""
win.state('iconic')
win.state('normal')
win.state('zommed')
win.state('zoomed')
win.state('withdraw')
"""
#win.attributes('-alpha',0.5) #设置透明度
#win.attributes('-toolwindow',1)#没有最大化最小化按钮
#win.attributes('-toolwindow',0)#常规窗口
#win.attributes('-topmost',1) #置顶win.withdraw()  #隐藏原窗口
pwin=tk.Toplevel(win)  #新建弹窗
pwin.title('弹窗')
pwin.protocol('WM_DELETE_WINDOW',my)win.mainloop()

2.渐变窗口与计时器

#计时器
import tkinter as tk
import timedef my():global xif x >1:returnwin.title('计时器:{:.2f}'.format(x))win.attributes('-alpha', x)x += 0.01win.after(200,my) #100mswin = tk.Tk()
win.title("计时器")
win['bg']= 'lightblue'  #用win.keys()查看
ry('300x300')
sizable(0,0) #不可变窗口大小x = 0.01
win.attributes('-alpha', x)
win.after(200,my)win.mainloop()

3.简单的布局标签文本框按钮

(1)布局

import tkinter as tk
win=tk.Tk()
win.title("布局")
ry('320x240')
#sizable(0,0)
#定义
lbl=tk.Label(win,text="请输入")
txt=tk.Entry(win)
btn=tk.Button(win,text="确定")
#布局 方法一pack打包式放置 方法二grid表格式放置 方法三place任意放置
"""
lbl.pack(side='left' ,padx=(10,0))
txt.pack(side='left')   #txt.pack_info()查看pack的参数
btn.pack(side='left', padx='10')
"""
"""
id(row=0,column=0,padx=(50,10),pady=10) #id_info()查看grid的参数
id(row=0,column=1)
id(row=1,column=0,columnspan=2,padx=(50,0),pady=10, sticky='we')
"""
lbl.place(relx=0.1,rely=0.2)
txt.place(relx=0.3,rely=0.15)
btn.place(relx=0.5,rely=0.25)
#win.mainloop()

(2)布局

import tkinter as tk
#建窗口
win=tk.Tk()
win.title('布局')
#建组件
frm=tk.Frame(win) #框架
#定义
lbl=tk.Label(frm,text='请输入')
txt=tk.Entry(frm)
btn=tk.Button(win,text='确定')#布局
lbl.pack(side='left', padx=10, pady=10)
txt.pack(side='left', padx=10, pady=10)
frm.pack()
btn.pack(fill='x')win.mainloop()

4.摄氏度华氏度

import tkinter as tk
def myfun(e):
#def myfun():try:a=())b=())lbx.delete(0,'end')for i in range(a,b+1):f=i*9/5+32lbx.insert('end','    {}           {}'.format(i,f))except:passwin=tk.Tk()
win.title('温度转换')
sizable(0,0) #大小不可更改
label1 = tk.Label(win, text='请输入第1个整数')
label2 = tk.Label(win, text='请输入第2个整数')
label3 = tk.Label(win, text='摄氏温度   华氏温度')
entry1 = tk.Entry(win)
entry2 = tk.Entry(win)
entry1.insert(0, '10')
entry2.insert(0, '15')
#btn=tk.Button(win, text='确定',command=myfun)
btn=tk.Label(win, text='确定',#把label变成按钮relief='groove')  #浮雕
btn.bind('<Button-1>', myfun) #用bing绑定 必须给函数参数 
lbx=tk.Listbox(win)#滚动条
scr=tk.Scrollbar(win)
scr['command']=lbx.yview
lbx['yscrollcommand']=id(row=1, column=0)
id(row=2, column=0)
id(row=0, column=id(row=1, column=1)
id(row=2, column=1)
id(row=3, column=1, sticky="ew")
id(row=1, column=2, rowspan=3, padx=10, pady=10)
id(row=1, column=3, rowspan=3, sticky='ns')
#btn.key()找到可以设置的参数 或者fig()win.mainloop()

5.随机弹出数字(随机点名、抽奖)

import tkinter as tk
import random
def myfun():lst=list(range(100))name=random.choice(lst)lbl['text']=namewin.after(500,myfun)win=tk.Tk()
win.title('抽奖程序')lbl=tk.Label(win,text='***', width=6,font='-size 48')
btn=tk.Button(win,text='开始', font='-size 36', command=id(row=0,column=0,padx=10,pady=10)
id(row=0,column=1,padx=10,pady=10)#win.mainloop()

6.几行几列五子棋画布

import tkinter as tkwin=tk.Tk()
win.title('五子棋')
ry('800x600+64+32')
sizable(0,0)#建画布
cav=tk.Canvas(win, width=600,height=600, bg='yellow')
rfm=tk.Frame(win,width=200,height=600, bg='lightyellow')
cav.pack(side='left')
rfm.pack(side='right')#画线
for i in range(1,20):x1, y1, x2, y2=30, i*30,19*30,ate_line(x1,y1,x2,ate_line(y1,x1,y2,x2)

本文发布于:2024-02-01 08:29:24,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170674736635251.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:图形化   界面   专题   tkinter
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23