Python基礎(chǔ)之tkinter圖形化界面學(xué)習(xí)
一、基礎(chǔ)內(nèi)容
import tkinter as tk from PIL import Image,ImageTk def my(): pwin.destroy() win.deiconify() win = tk.Tk() #win.geometry('320x240+100+50') #長(zhǎng)320寬240 右100,下50 win['width']=320 #可以用win.keys()查看哪些可以這樣寫(xiě) win['height']=240 win.title('tkinter圖形化專題學(xué)習(xí)') #win.iconbitmap('my.ico') img=ImageTk.PhotoImage(image=Image.open('1.gif','r')) win.iconphoto(False,img) #win.withdraw()#臨時(shí)退出 #win.deiconify()#恢復(fù) #win.iconify()#最小化 #win.destroy()#關(guān)掉 #help(win.state) """ win.state('iconic') win.state('normal') win.state('zommed') win.state('zoomed') win.state('withdraw') """ #win.attributes('-alpha',0.5) #設(shè)置透明度 #win.attributes('-toolwindow',1)#沒(méi)有最大化最小化按鈕 #win.attributes('-toolwindow',0)#常規(guī)窗口 #win.attributes('-topmost',1) #置頂 win.withdraw() #隱藏原窗口 pwin=tk.Toplevel(win) #新建彈窗 pwin.title('彈窗') pwin.protocol('WM_DELETE_WINDOW',my) win.mainloop()
二、漸變窗口與計(jì)時(shí)器
#計(jì)時(shí)器 import tkinter as tk import time def my(): global x if x >1: return win.title('計(jì)時(shí)器:{:.2f}'.format(x)) win.attributes('-alpha', x) x += 0.01 win.after(200,my) #100ms win = tk.Tk() win.title("計(jì)時(shí)器") win['bg']= 'lightblue' #用win.keys()查看 win.geometry('300x300') win.resizable(0,0) #不可變窗口大小 x = 0.01 win.attributes('-alpha', x) win.after(200,my) win.mainloop()
三、簡(jiǎn)單的布局標(biāo)簽文本框按鈕
3.1 布局
import tkinter as tk win=tk.Tk() win.title("布局") win.geometry('320x240') #win.resizable(0,0) #定義 lbl=tk.Label(win,text="請(qǐng)輸入") 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的參數(shù) btn.pack(side='left', padx='10') """ """ lbl.grid(row=0,column=0,padx=(50,10),pady=10) #lbl.grid_info()查看grid的參數(shù) 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='請(qǐng)輸入') 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 tk def 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: pass win=tk.Tk() win.title('溫度轉(zhuǎn)換') win.resizable(0,0) #大小不可更改 label1 = tk.Label(win, text='請(qǐng)輸入第1個(gè)整數(shù)') label2 = tk.Label(win, text='請(qǐng)輸入第2個(gè)整數(shù)') 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綁定 必須給函數(shù)參數(shù) lbx=tk.Listbox(win) #滾動(dòng)條 scr=tk.Scrollbar(win) scr['command']=lbx.yview lbx['yscrollcommand']=scr.set label1.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()找到可以設(shè)置的參數(shù) 或者btn.config() win.mainloop()
五、隨機(jī)彈出數(shù)字(隨機(jī)點(diǎn)名、抽獎(jiǎng))
import tkinter as tk import random def myfun(): lst=list(range(100)) name=random.choice(lst) lbl['text']=name win.after(500,myfun) win=tk.Tk() win.title('抽獎(jiǎng)程序') lbl=tk.Label(win,text='***', width=6,font='-size 48') btn=tk.Button(win,text='開(kāi)始', 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()
六、幾行幾列五子棋畫(huà)布
import tkinter as tk win=tk.Tk() win.title('五子棋') win.geometry('800x600+64+32') win.resizable(0,0) #建畫(huà)布 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') #畫(huà)線 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)
到此這篇關(guān)于Python基礎(chǔ)之tkinter圖形化界面學(xué)習(xí)的文章就介紹到這了,更多相關(guān)Python tkinter圖形化界面學(xué)習(xí)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python?cv.Canny()方法參數(shù)與使用方法
這篇文章主要介紹了Python?cv.Canny()方法參數(shù)與使用方法,OpenCV提供了cv.Canny()方法,該方法將輸入的原始圖像轉(zhuǎn)換為邊緣圖像,更多相關(guān)內(nèi)容需要的朋友可以參考一下2022-07-07Python基于百度AI實(shí)現(xiàn)OCR文字識(shí)別
這篇文章主要介紹了Python基于百度AI實(shí)現(xiàn)OCR文字識(shí)別,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04終于搞懂了Python中super(XXXX,?self).__init__()的作用了
本文主要介紹了終于搞懂了Python中super(XXXX,?self).__init__()的作用了,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08python連接sql?server數(shù)據(jù)庫(kù)的方法實(shí)戰(zhàn)
當(dāng)我們用Python來(lái)編寫(xiě)網(wǎng)站,必須要能夠通過(guò)python操作數(shù)據(jù)庫(kù),下面這篇文章主要給大家介紹了關(guān)于python連接sql?server數(shù)據(jù)庫(kù)的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08pyqt QGraphicsView 以鼠標(biāo)為中心進(jìn)行縮放功能實(shí)現(xiàn)
在PyQt開(kāi)發(fā)中,實(shí)現(xiàn)QGraphicsView的鼠標(biāo)中心縮放功能需要注意初始化以及關(guān)鍵函數(shù)的重定義,遇到不達(dá)預(yù)期的效果時(shí),可能需要重寫(xiě)所有鼠標(biāo)事件,本文記錄了解決QGraphicsView鼠標(biāo)縮放問(wèn)題的過(guò)程,供開(kāi)發(fā)者參考2024-10-10Python解決pip?install?numpy過(guò)慢問(wèn)題的幾種方法
在進(jìn)行Python科學(xué)計(jì)算、數(shù)據(jù)分析或機(jī)器學(xué)習(xí)時(shí),numpy是最基礎(chǔ)且最常用的庫(kù)之一,然而,許多用戶在安裝numpy時(shí),可能會(huì)遇到下載速度極慢甚至失敗的情況,本文將從問(wèn)題分析、解決方案、優(yōu)化建議等多個(gè)角度,詳細(xì)介紹pip?install?numpy過(guò)慢問(wèn)題的解決,需要的朋友可以參考下2025-03-03python多線程調(diào)用exit無(wú)法退出的解決方法
今天小編就為大家分享一篇python多線程調(diào)用exit無(wú)法退出的解決方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-02-02