一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Python基礎之tkinter圖形化界面學習

Python基礎之tkinter圖形化界面學習

2021-10-23 15:28anITfish Python

這篇文章主要介紹了Python基礎之tkinter圖形化界面學習,文中有非常詳細的代碼示例,對正在學習python基礎的小伙伴們有非常好的幫助,需要的朋友可以參考下

一、基礎內容

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import tkinter as tk
from PIL import Image,ImageTk
 
def my():
        pwin.destroy()
        win.deiconify()
 
 
win = tk.Tk()
#win.geometry('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()

二、漸變窗口與計時器

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#計時器
import tkinter as tk
import time
 
def my():
    global x
    if x >1:
        return
    win.title('計時器:{:.2f}'.format(x))
    win.attributes('-alpha', x)
    x += 0.01
    
    win.after(200,my) #100ms
    
win = tk.Tk()
win.title("計時器")
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()

三、簡單的布局標簽文本框按鈕

3.1 布局

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import tkinter as tk
win=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 布局

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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()

四、攝氏度華氏度

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
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('溫度轉換')
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.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()找到可以設置的參數 或者btn.config()
 
win.mainloop()

五、隨機彈出數字(隨機點名、抽獎)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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('抽獎程序')
 
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()

六、幾行幾列五子棋畫布

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import tkinter as tk
 
win=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圖形化界面學習內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://blog.csdn.net/qq_31949641/article/details/116229818

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 农夫成人网 | 69av导航 | 海角社区在线登录 | 欧美人体高清在线观看ggogo | 日韩国产成人资源精品视频 | 四虎1515hh.com| 性欧美13处丶14处 | 高清在线免费观看 | 天天久久综合网站 | ferr孕妇videos毛茸茸 | 国产视频一二三区 | 成人国产精品一级毛片视频 | 欧美日韩国产另类一区二区三区 | 视频在线观看大片 | ts人妖系列在线专区 | 国产99视频精品免视看7 | 国产首页精品 | 我要看逼 | 国产精品露脸国语对白99 | 成人久久伊人精品伊人 | 欧美一级专区免费大片俄罗斯 | 无人影院在线播放视频 | 久久久大香菇 | 校园全黄h全肉细节文 | 狠狠干综合网 | 国产欧美日韩专区 | 精品视频网站 | 亚洲男人天堂久久 | 久久成人精品免费播放 | 99久久精品免费看国产高清 | 亚洲va欧美va天堂v国产综合 | 秋霞一级成人欧美理论 | 好吊日在线 | 欧美大片一级片 | 午夜综合 | 日日爽日日操 | 性夜夜春夜夜爽AA片A | 99国产精品免费视频 | 亚洲日韩中文字幕一区 | boobsmilking流奶水野战 | 欧洲第一区第二区第三区 |