Python的交互式界面 编写 .
生活随笔
收集整理的這篇文章主要介紹了
Python的交互式界面 编写 .
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1 from tkinter import *
2 # 導(dǎo)入tkinter模塊的所有內(nèi)容
3
4 root = Tk()
5
6 # 創(chuàng)建一個(gè)文本Label對(duì)象
7 textLabel = Label(root, # 將內(nèi)容綁定在 root 初始框上面
8 text="您所下載的影片含有未成年人限制內(nèi)容,\n請(qǐng)滿18歲后再點(diǎn)擊觀看!",
9 justify=LEFT, # 用于 指明文本的 位置
10 padx=10) # 限制 文本的 位置 , padx 是 x軸的意思 .
11 textLabel.pack(side=LEFT) # 致命 textlabel 在初識(shí)框 中的位置
12
13 # 創(chuàng)建一個(gè)圖像Label對(duì)象
14 # 用PhotoImage實(shí)例化一個(gè)圖片對(duì)象(支持gif格式的圖片)
15 photo = PhotoImage(file="18.gif")
16 imgLabel = Label(root, image=photo) # 綁定在初始曠上面
17 imgLabel.pack(side=RIGHT) # 指明 圖片位置
18
19 mainloop() 1 from tkinter import *
2
3 root = Tk()
4
5 photo = PhotoImage(file="bg.gif") # 聲明一下圖片 .
6 theLabel = Label(root,
7 text="大家好,才是真的好.", # 載入文本
8 justify=LEFT, # 聲明文本的位置
9 image=photo, # 載入圖片
10 compound=CENTER, #聲明圖片的位置
11 font=("楷體", 20), # 聲明文本字體
12 fg="white" # 聲明文本顏色 .
13 )
14 theLabel.pack() # 自動(dòng)調(diào)整布局
15
16 mainloop() 1 from tkinter import *
2 # 導(dǎo)入tkinter模塊的所有內(nèi)容
3
4 def callback(): # 定義一個(gè) 改變文本的函數(shù) .
5 var.set("吹吧你,我才不信呢~")
6
7 root = Tk() # 初始曠的聲明 .
8
9 frame1 = Frame(root) # 在初始曠里面 聲明兩個(gè)模塊 .
10 frame2 = Frame(root)
11
12 # 創(chuàng)建一個(gè)文本Label對(duì)象
13 var = StringVar() #聲明可變 變量 .
14 var.set("您所下載的影片含有未成年人限制內(nèi)容,\n請(qǐng)滿18歲后再點(diǎn)擊觀看!") # 設(shè)置變量 .
15 textLabel = Label(frame1, # 綁定到模塊1
16 textvariable=var, # textvariable 是文本變量的意思 .
17 justify=LEFT) # 字體 位置
18 textLabel.pack(side=LEFT) # 整體位置
19
20 # 創(chuàng)建一個(gè)圖像Label對(duì)象
21 # 用PhotoImage實(shí)例化一個(gè)圖片對(duì)象(支持gif格式的圖片)
22 photo = PhotoImage(file="18.gif")
23 imgLabel = Label(frame1, image=photo)
24 imgLabel.pack(side=RIGHT)
25
26 # 加一個(gè)按鈕
27 theButton = Button(frame2, text="已滿18周歲", command=callback) # 按下按鈕 執(zhí)行 callback函數(shù)
28 theButton.pack()
29
30 frame1.pack(padx=10, pady=10)
31 frame2.pack(padx=10, pady=10)
32
33 mainloop()
?
?
?
?
?
1 from tkinter import * 2 3 root = Tk() 4 root.title('皇上翻牌子啦!') # 添加 初識(shí)框的標(biāo)題 . 5 GIRLS = ['西施','貂蟬','王昭君','楊玉環(huán)'] # 列表內(nèi)容 . 6 v = [] # 用于存放變量 7 8 for girl in GIRLS: 9 v.append(IntVar()) 10 print(IntVar()) 11 b = Checkbutton(root,text=girl,variable=v[-1],padx=80,font=('楷體',22)) 12 b.pack(anchor=W) # 文本的位置 . (東西南北的首拼 (英文)) 13 14 15 mainloop()?
1 from tkinter import * 2 3 root = Tk() 4 root.title('皇上翻牌子啦!') # 添加 初識(shí)框的標(biāo)題 . 5 GIRLS = ['西施','貂蟬','王昭君'] # 列表內(nèi)容 . 6 v = [] # 用于存放變量 7 8 for girl in GIRLS: 9 v.append(IntVar()) # 聲明一個(gè) 變量并且加入 v 10 b = Checkbutton(root,text=girl,variable=v[-1],padx=80,font=('楷體',22)) #記錄下來(lái) 變量的變化 11 l = Label(root,textvariable=v[-1]) # 將變量表示為文本并且加入初始曠 . 12 l.pack(anchor=N) 13 b.pack(anchor=W) 14 b = Checkbutton(root,text='楊玉環(huán)',variable=v[1],padx=80,font=('楷體',22)) 15 l = Label(root,textvariable=v[1]) 16 l.pack(anchor=N) 17 b.pack(anchor=W) 18 mainloop()?
?
讓楊玉環(huán)和貂蟬同用一個(gè)tk變量 . ?這樣修改 貂蟬和楊玉環(huán) 任意一個(gè)另一個(gè)也會(huì)被改變的 .?
?
1 from tkinter import * 2 3 root = Tk() 4 5 v = IntVar() 6 7 Radiobutton(root,text='One',variable=v,value=1).pack(anchor=W) 8 Radiobutton(root,text='Two',variable=v,value=2).pack(anchor=W) 9 Radiobutton(root,text='Three',variable=v,value=3).pack(anchor=W) # value 的值不同 . 相同的值 在其中一個(gè)被選中之后剩余的也會(huì)自動(dòng)選中 . 10 11 mainloop()? ? ?這樣就實(shí)現(xiàn)了單選的功能 .?
1 from tkinter import * 2 3 root = Tk() 4 v = IntVar() 5 6 Language = [('Python',1), 7 ('ruby',2), 8 ('C++',3), 9 ('java',2) 10 ] 11 for lang,num in Language: 12 b = Radiobutton(root,text=lang,variable=v,value=num) 13 l = Label(root,textvariable=v) 14 l.pack() 15 b.pack(anchor=W) 16 17 mainloop() 1 from tkinter import * 2 3 root = Tk() 4 v = IntVar() 5 6 Language = [('Python',1), 7 ('ruby',2), 8 ('C++',3), 9 ('java',2) 10 ] 11 for lang,num in Language: 12 b = Radiobutton(root,text=lang,variable=v,value=num,indicatoron=False,padx=30,pady=3) 13 l = Label(root,textvariable=v) 14 #l.pack() 15 b.pack(anchor=W,fill=X) 16 17 mainloop()將其中內(nèi)容分隔開(kāi) . ?LabelFrame
1 from tkinter import * 2 import easygui 3 4 root = Tk() 5 root.title('編程語(yǔ)言大戰(zhàn) !') 6 v = IntVar() 7 photo = PhotoImage(file="bg.gif") # 聲明一下圖片 . 8 def callback(): 9 easygui.msgbox('你這樣讓我很不爽',title='你說(shuō)呢?') 10 11 group=LabelFrame(root,text='最好的編程語(yǔ)言是 ?') # 基于root 制定一個(gè)框架 . 12 group.pack(padx=50) 13 14 v.set(1) 15 Language = [('Python',1), 16 ('ruby',2), 17 ('C++',3), 18 ('java',2) 19 ] 20 for lang,num in Language: 21 b = Radiobutton(group,text=lang,variable=v,value=num,indicatoron=False,padx=30,pady=3) 22 l = Label(group,textvariable=v) # 將內(nèi)容添加到框架當(dāng)中 23 l.pack() 24 b.pack(anchor=W,fill=X) 25 26 theButton=Button(root,text='就是這個(gè)了',command=callback) 27 theButton.pack(pady=20) 28 mainloop() 29?
?
?
?
1 from tkinter import * 2 3 root = Tk() 4 5 Label(root,text='帳號(hào) :').grid(row=0,column=0) # 對(duì)Label內(nèi)容進(jìn)行 表格式 布局 6 Label(root,text='密碼 :').grid(row=1,column=0) 7 8 v1=StringVar() # 設(shè)置變量 . 9 v2=StringVar() 10 11 e1 = Entry(root,textvariable=v1) # 用于儲(chǔ)存 輸入的內(nèi)容 12 e2 = Entry(root,textvariable=v2,show='$') 13 e1.grid(row=0,column=1,padx=10,pady=5) # 進(jìn)行表格式布局 . 14 e2.grid(row=1,column=1,padx=10,pady=5) 15 def show(): 16 print("帳號(hào) :%s" % e1.get()) # get 變量?jī)?nèi)容 17 print("密碼 :%s" % e2.get()) 18 19 Button(root,text='芝麻開(kāi)門(mén)',width=10,command=show).grid(row=3,column=0,sticky=W,padx=10,pady=5) # 設(shè)置 button 指定 寬度 , 并且 關(guān)聯(lián) 函數(shù) , 使用表格式布局 . 20 Button(root,text='退出',width=10,command=root.quit).grid(row=3,column=1,sticky=E,padx=10,pady=5) 21 22 mainloop()?
?
?
1 from tkinter import * 2 3 master = Tk() 4 5 def test(): 6 if e1.get() == '小甲魚(yú)': 7 print("正確") 8 return True 9 else: 10 print('錯(cuò)誤') 11 e1.delete(0,END) 12 return False 13 14 v=StringVar() 15 16 e1 = Entry(master,textvariable=v,validate='focusout',validatecommand=test) # validate 用于指定什么時(shí)候檢測(cè) . validatecommand 用于指定檢測(cè)的標(biāo)準(zhǔn) 17 e2 = Entry(master) 18 e1.pack(padx=10,pady=10) 19 e2.pack(padx=10,pady=10) 20 21 22 23 mainloop()?
?
?Python中的Entry 輸入檢測(cè) , validate 用于指定檢測(cè)的時(shí)機(jī) . validatecommand 用于 指定監(jiān)測(cè)機(jī)制 , invlidcommand 用于指定當(dāng)結(jié)果不合格的時(shí)候執(zhí)行的方案 .?
1 from tkinter import * 2 3 master = Tk() 4 5 v = StringVar() 6 7 def test(): 8 if e1.get() == '小甲魚(yú)': 9 print("正確") 10 return True 11 else: 12 print('錯(cuò)誤') 13 e1.delete(0,END) 14 return False 15 16 def test1(): 17 print('我被調(diào)用了....') 18 return True 19 20 v=StringVar() 21 22 e1 = Entry(master,textvariable=v,validate='focusout',\ 23 validatecommand=test,invalidcommand=test1) # validate 用于指定什么時(shí)候檢測(cè) . validatecommand 用于指定檢測(cè)的標(biāo)準(zhǔn) 24 e2 = Entry(master) 25 e1.pack(padx=10,pady=10) 26 e2.pack(padx=10,pady=10) 27 28 29 30 mainloop() 1 from tkinter import * 2 import easygui 3 4 master = Tk() 5 6 frame = Frame(master) # 確定一個(gè)框架用于美觀 7 8 frame.pack(padx = 20,pady = 20) 9 10 v1 = StringVar() # 分別用于儲(chǔ)存需要計(jì)算的數(shù)據(jù)和 結(jié)果 11 v2 = StringVar() 12 v3 = StringVar() 13 14 def test(content): 15 return content.isdigit() # 檢查是不是數(shù)字 . 16 17 testCMD = frame.register(test) # 將函數(shù) 進(jìn)行包裝 . 18 19 e1 = Entry(frame,width=10,textvariable=v1,validate='key',\ 20 validatecommand=(test,'%p')).grid(row=0,column=0,pady=10) # %p 是輸入框的最新內(nèi)容 . 當(dāng)輸入框允許改變的時(shí)候該值有效 , 21 Label(frame,text='+',padx=10).grid(row=0,column=1) 22 23 e2 = Entry(frame,width=10,textvariable=v2,validate='key',\ 24 validatecommand=(test,'%p')).grid(row=0,column=2) 25 Label(frame,text='=',padx=10).grid(row=0,column=3) 26 27 e3 = Entry(frame,width=15,textvariable=v3,state='readonly').grid(row=0,column=4) 28 29 def calc(): 30 if v1.get()=='': 31 easygui.msgbox('請(qǐng)先輸入內(nèi)容 !') 32 return 33 result = int(v1.get()) + int(v2.get()) 34 v3.set(result) 35 36 Button(frame,text='計(jì)算結(jié)果',command=calc).grid(row=1,column=2,pady=5) 37 38 mainloop()
?
滾動(dòng)條 設(shè)置 .
?為了在某個(gè)組件上面安裝垂直滾動(dòng)條 , 你需要做兩件事 .?
1 : 攝制組間的yscrollbarcommand選項(xiàng)作為Scorllbar組建的set()方法 .?
2 : ?設(shè)置Scrollbar組建的command選項(xiàng)為該組件的yview()方法
?lb = Listbox(root,yscrollcommand=sb.set)? 這一句 其中的 lb 是 Listbox的實(shí)例化 , 用于綁定root 框架 ?. yscrollcommand=sb(滾動(dòng)條).set 用于 當(dāng) 可選內(nèi)容 變化的時(shí)候 , ?帶動(dòng)滾動(dòng)條的變化 .
?sb.config(command=lb.yview) ?滾動(dòng)條 , 和 可選內(nèi)容進(jìn)行 關(guān)系綁定 .?
1 from tkinter import * 2 3 4 root = Tk() 5 6 sb = Scrollbar(root) 7 sb.pack(side=RIGHT,fill=Y) # 需要先 將滾動(dòng)條放置 到一個(gè)合適的位置 , 然后開(kāi)始填充 . 8 9 lb = Listbox(root,yscrollcommand=sb.set) # 內(nèi)容 控制滾動(dòng)條 . 10 11 for i in range(111): 12 lb.insert(END,i) 13 14 lb.pack(side=LEFT,fill=BOTH) 15 16 sb.config(command=lb.yview) # 滑輪控制內(nèi)容 . 17 18 mainloop() 1 from tkinter import * 2 3 4 root = Tk() 5 6 s1 = Scale(root,from_=-10,to=10,tickinterval=5,resolution=2,length=100) # tickinterval 是設(shè)置的 標(biāo)尺 多少長(zhǎng)度有一個(gè)可讀 , resolution設(shè)置的是 一次跳躍的 長(zhǎng)度 . length 是設(shè)置長(zhǎng)度 . 7 s1.pack() 8 s2 = Scale(root,from_=-100,to=100,orient=HORIZONTAL,tickinterval=5,length=400,resolution=2) # roient 默認(rèn)的是 x 軸 , 讓roient = HORIZONTAL 設(shè)置Y 軸 尺度 . 9 s2.pack() 10 11 def Location_show(): 12 print('X軸速度 :'+str(s1.get())) 13 print('Y軸速度 :'+str(s2.get())) 14 15 16 Button(root,text='獲取位置',command=Location_show).pack() 17 18 mainloop() 19 20 21文本框
1 from tkinter import * 2 3 4 root = Tk() 5 6 text = Text(root ,width=30,height=5) # 這個(gè)意思是每行三十個(gè)字符 兩行 . 7 8 text.pack() 9 10 text.insert(INSERT,"I Love \n")# 第一個(gè)表示插入的位置 第二個(gè)是內(nèi)容 其中第一個(gè)必須有 , INSERT 是光標(biāo)所在位置 11 text.insert(END,"Fishc.com !") # END 表示 在上一次輸入結(jié)束的位置繼續(xù) . 12 13 14 15 mainloop()?
因?yàn)槲谋究蚝蚻istbox較為相似所以這里加入滾動(dòng)條試試 .
1 from tkinter import * 2 3 4 root = Tk() 5 # 設(shè)置 滾動(dòng)條 控制 6 sb = Scrollbar(root) # 在 root 初始曠 上面插入一 插入一個(gè)滾動(dòng)條 . 7 sb.pack(side=RIGHT,fill=Y) # 設(shè)置滾動(dòng)條的位置 . 8 9 10 11 12 text = Text(root ,width=30,height=10,yscrollcommand=sb.set) # 這個(gè)意思是每行三十個(gè)字符 兩行 . 將滾動(dòng)條 綁定在text文本上面 . 下面 txt文本會(huì)插入內(nèi)容 . 13 14 text.pack() 15 16 text.insert(INSERT,"I Love \n")# 第一個(gè)表示插入的位置 第二個(gè)是內(nèi)容 其中第一個(gè)必須有 , INSERT 是光標(biāo)所在位置 17 text.insert(END,"Fishc.com !\n") # END 表示 在上一次輸入結(jié)束的位置繼續(xù) . 18 19 photo = PhotoImage(file="18.gif") # 打包一個(gè)圖片 . 20 def show(): 21 text.image_create(END,image=photo) # 在text 中添加一個(gè) 圖片 . 22 button1 = Button(text,text="頂我! ",command=show) # 第一個(gè)和第二個(gè)的 text 可是不一樣的, 23 text.window_create(INSERT,window=button1) # 除了 文字是 insert 其余的好像都是 window_create 24 25 text.pack(side=LEFT,fill=BOTH) 26 sb.config(command=text.yview) # 滾動(dòng)條綁定 text的內(nèi)容 用于 拉動(dòng)滑塊 反轉(zhuǎn)內(nèi)容 . 27 28 29 mainloop()?
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/A-FM/p/5724269.html
總結(jié)
以上是生活随笔為你收集整理的Python的交互式界面 编写 .的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 三种CSS样式的引用方式
- 下一篇: Linux系统开机启动流程介绍