您的位置:首页技术文章
文章详情页

Python基础之tkinter图形化界面学习

【字号: 日期:2022-06-20 17:15:29浏览:4作者:猪猪
一、基础内容

import tkinter as tkfrom PIL import Image,ImageTkdef my():pwin.destroy()win.deiconify()win = tk.Tk()#win.geometry(’320x240+100+50’) #长320宽240 右100,下50win[’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()二、渐变窗口与计时器

#计时器import tkinter as tkimport timedef my(): global x if x >1:return win.title(’计时器:{:.2f}’.format(x)) win.attributes(’-alpha’, x) x += 0.01win.after(200,my) #100ms win = tk.Tk()win.title('计时器')win[’bg’]= ’lightblue’ #用win.keys()查看win.geometry(’300x300’)win.resizable(0,0) #不可变窗口大小x = 0.01win.attributes(’-alpha’, x)win.after(200,my)win.mainloop()三、简单的布局标签文本框按钮3.1 布局

import tkinter as tkwin=tk.Tk()win.title('布局')win.geometry(’320x240’)#win.resizable(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’)''''''lbl.grid(row=0,column=0,padx=(50,10),pady=10) #lbl.grid_info()查看grid的参数txt.grid(row=0,column=1)btn.grid(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()3.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()四、摄氏度华氏度

import tkinter as tkdef myfun(e):#def myfun(): try:a=int(entry1.get())b=int(entry2.get())lbx.delete(0,’end’)for i in range(a,b+1): f=i*9/5+32 lbx.insert(’end’,’ {} {}’.format(i,f)) except:passwin=tk.Tk()win.title(’温度转换’)win.resizable(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.yviewlbx[’yscrollcommand’]=scr.setlabel1.grid(row=1, column=0)label2.grid(row=2, column=0)label3.grid(row=0, column=2)entry1.grid(row=1, column=1)entry2.grid(row=2, column=1)btn.grid(row=3, column=1, sticky='ew')lbx.grid(row=1, column=2, rowspan=3, padx=10, pady=10)scr.grid(row=1, column=3, rowspan=3, sticky=’ns’)#btn.key()找到可以设置的参数 或者btn.config()win.mainloop()五、随机弹出数字(随机点名、抽奖)

import tkinter as tkimport randomdef myfun(): lst=list(range(100)) name=random.choice(lst) lbl[’text’]=name win.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=myfun)lbl.grid(row=0,column=0,padx=10,pady=10)btn.grid(row=0,column=1,padx=10,pady=10)#win.mainloop()六、几行几列五子棋画布

import tkinter as tkwin=tk.Tk()win.title(’五子棋’)win.geometry(’800x600+64+32’)win.resizable(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,i*30 cav.create_line(x1,y1,x2,y2) cav.create_line(y1,x1,y2,x2)

到此这篇关于Python基础之tkinter图形化界面学习的文章就介绍到这了,更多相关Python tkinter图形化界面学习内容请搜索好吧啦网以前的文章或继续浏览下面的相关文章希望大家以后多多支持好吧啦网!

标签: Python 编程
相关文章: