python tkinter控件布局項(xiàng)目實(shí)例
這篇文章主要介紹了python tkinter控件布局項(xiàng)目實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
代碼部分:
from tkinter import * import tkinter.messagebox as messagebox class Tkdemo(): def __init__(self): master = Tk() master.title("missWjz") master.geometry('800x800') #創(chuàng)建菜單欄 menubar = Menu(master) master.config(menu=menubar) #創(chuàng)建下拉菜單欄 filemenu = Menu(menubar,tearoff=0) menubar.add_cascade(label="文件",menu=filemenu) filemenu.add_command(label="新建",command=self.newfile) filemenu.add_command(label="打開",command=self.openfile) filemenu.add_command(label="保存",command=self.savefile) #增加分割線 filemenu.add_separator() filemenu.add_command(label="關(guān)閉填寫",command=master.quit) #Label(文字) title = Label(master,text="這是一份Tkinter的問卷調(diào)查",font=15,bg='white',fg='red') title.pack() #Frame 將問題1放在frame_1中 frame_1 = Frame(master) frame_1.pack(fill=X) #問題1 label_1 = Label(frame_1,text="1、我們第一次見面的地方?") label_1.grid(row=1,column=0) #Entry 問題一的輸入框 self.name = StringVar() entryname = Entry(frame_1,textvariable=self.name) #通過grid方法定位 entryname.grid(row=1,column=1) #Button 按鈕 getname = Button(frame_1,text="點(diǎn)擊確認(rèn)",command=self.getname) getname.grid(row=1,column=3) #Frame 將問題二放在frame_2中 frame_2 = Frame(master) frame_2.pack(fill=X) #Label 問題二 label_2 = Label(frame_2,text="2、我記得你生日") label_2.grid(row=1,column=0) #Radiobutton 選擇按鈕 self.sex = StringVar() sex_male = Radiobutton(frame_2,text='記得',fg='blue',variable=self.sex,value='記得',command=self.getsex) sex_male.grid(row=1,column=2) sex_female = Radiobutton(frame_2,text='不可能',fg='red',variable=self.sex,value="不可能",command=self.getsex) sex_female.grid(row=1,column=4) #Frame 問題3 放在frame_3中 frame_3 = Frame(master) frame_3.pack(fill=X) #Label 問題3 label_3 = Label(frame_3,text="3、你對(duì)我的重要性:") label_3.grid(row=1,column=0) #Scale 滑動(dòng)條 self.age = Scale(frame_3,from_=0,to=100,orient=HORIZONTAL,resolution=1) self.age.grid(row=1,column=1) #Button 按鈕 getage = Button(frame_3,text='點(diǎn)我確認(rèn)',command=self.getage) getage.grid(row=1,column=2) #問題4 置于 Frame_4 中 frame_4 = Frame(master) frame_4.pack(fill=X) #問題四 label_4 = Label(frame_4,text="4、去除一段過去:") label_4.grid(row=1,column=0) #列表 self.listbox = Listbox(frame_4) self.listbox.grid(row=1,column=1) for item in ["第一次看電影","第一次拍照留影","第一次一起吃飯","第一次一起出去玩"]: self.listbox.insert(END,item) #s刪除按鈕 DELE = Button(frame_4,text="刪除",command=lambda listbox=self.listbox: listbox.delete(ANCHOR)) DELE.grid(row=1,column=1) #確認(rèn)按鈕 review = Button(frame_4,text='點(diǎn)我確認(rèn)',command = self.review) review.grid(row=1,column=2) #問題五 frame_5 = Frame(master) frame_5.pack(fill=X) label_5 = Label(frame_5,text='5、選擇一個(gè)圖案:') label_5.grid(row=1,column=0) self.canvas = Canvas(frame_5,width=200,height=200,bg='white') self.canvas.grid(row=1,column=1) self.pattern = StringVar() #圖案選擇按鈕 btn_first = Button(frame_5,text = "第一個(gè)",command =self.First_display) btn_second = Button(frame_5,text = "第二個(gè)",command =self.Second_dispaly) btn_third = Button(frame_5,text = "第三個(gè)",command =self.Third_display) btString = Button(frame_5, text="確定", command=self.displayString) btn_first.grid(row=2,column=2) btn_second.grid(row=2,column=3) btn_third.grid(row=2,column=4) btString.grid(row=2,column=5) #問題六 Frame_6 frame_6 = Frame(master) frame_6.pack(fill=X) label_6 = Label(frame_6,text="6、在一起的天數(shù):") label_6.grid(row=1,column=0) #(Spinbox) self.number = Spinbox(frame_6,from_=0,to=200) self.number.grid(row=1,column=1) #確定按鈕 number = Button(frame_6,text="確定",command=self.getnumber) number.grid(row=1,column=2) #問題7 frame_7 frame_7 = Frame(master) frame_7.pack(fill=X) #問題 label_7 = Label(frame_7,text="7、印象最深的一天:") label_7.grid(row=1,column=0) #滾輪 scrollbar = Scrollbar(frame_7) scrollbar.grid(row=1,column=1) #列表 self.listbox2 = Listbox(frame_7,height=5,yscrollcommand=scrollbar.set) for i in range(99): self.listbox2.insert(END,str(i)) self.listbox2.grid(row=1,column=1) #確定按鈕 star = Button(frame_7,text="確定",command=self.getstar) star.grid(row=2,column=1) #問題8 frame_8 = Frame(master) frame_8.pack(fill=X) self.agree = StringVar() #Checkbutton 勾選按鈕 agree = Checkbutton(frame_8,text="我確定此問卷信息準(zhǔn)確無誤",variable=self.agree,offvalue='不確定',command=self.getagree) agree.grid(row=1,column=1) #問題9 Frame_9 frame_9 = Frame(master) frame_9.pack() submit = Button(frame_9,text="提交",command=self.allsubmit) submit.grid(row=1,column=1) #問題十 frame_10 = Frame(master) frame_10.pack() #容器框 self.group = LabelFrame(frame_10,text="特別鳴謝",padx=5,pady=5) self.group.grid() w = Label(self.group,text="本問卷由衷感謝:https://github.com/James95107/Tkinter/blob/master") w.pack() master.mainloop() def getname(self): name = self.name.get() print(name) def getsex(self): sex = self.sex.get() print(sex) def getage(self): print(self.age.get()) def review(self): print(self.listbox.get(0, END)) def getstar(self): print(self.listbox2.get(ACTIVE)) def displayString(self): self.canvas.create_text(60, 40, text="您真棒?。?!", font="Tine 10 bold underline", tags="string") print(self.pattern) def getnumber(self): print(self.getnumber()) def getagree(self): print(self.agree.get()) #打印心形 def First_display(self): self.canvas.create_arc((5, 5, 85, 85), width=2, outline="red", start=0, extent=180, style=ARC) self.canvas.create_arc((85, 5, 165, 85), width=2, outline="red", start=0, extent=180, style=ARC) self.canvas.create_arc((5, -45, 165, 125), width=2, outline="red", start=180, extent=180, style=ARC) self.pattern = 'First' #打印丘比特心形 def Second_dispaly(self): self.canvas.create_line((0, 55, 200, 55), width=2, fill='red', arrow=LAST, arrowshape=(20, 40, 10) ) self.canvas.create_arc((5, 5, 85, 85), width=2, outline="red", start=0, extent=180, style=ARC) self.canvas.create_arc((85, 5, 165, 85), width=2, outline="red", start=0, extent=180, style=ARC) self.canvas.create_arc((5, -45, 165, 125), width=2, outline="red", start=180, extent=180, style=ARC) self.pattern = 'Second' #打印愛心 def Third_display(self): self.canvas.create_text((90, 70), text="武峻竹", font=('微軟雅黑', 20, 'bold'), fill='red' ) self.canvas.create_arc((5, 5, 85, 85), width=2, outline="red", start=0, extent=180, style=ARC) self.canvas.create_arc((85, 5, 165, 85), width=2, outline="red", start=0, extent=180, style=ARC) self.canvas.create_arc((5, -45, 165, 125), width=2, outline="red", start=180, extent=180, style=ARC) self.pattern = 'Third' #屬性 #文件欄 def newfile(self): self.file = open(r"wujunzhu.txt",'w') self.file.close() messagebox.showinfo("創(chuàng)建文件","您已經(jīng)成功創(chuàng)建個(gè)人資料文檔") #顯示對(duì)話框 def openfile(self): f = open(r"wujunzhu.txt",'r') try: f_read = f.read() print(f_read) finally: f.close() def savefile(self): messagebox.showwarning("保存文件","提交即保存!") def allsubmit(self): with open('D:cpwords.txt','w',encoding='utf-8') as f: f.write('我們第一見面的地方是:') f.write(self.name.get()) f.write('\n我記得你生日:') f.write(self.sex.get()) f.write('\n你對(duì)我的重要性:') f.write(str(self.age.get())) f.write('\n要去除一段過去是:') for i in self.listbox.get(0, END): f.write(i) f.write(" ,") f.write('\n在一起的天數(shù)是:') f.write(self.number.get()) f.write('\n印象最深的一天是:') f.write(self.listbox2.get(ACTIVE)) f.write('\n') f.write(self.agree.get()) f.write('本調(diào)查問卷的真實(shí)性') messagebox.showinfo('Success', '恭喜您已成功提交 ') # 顯示對(duì)話框 Tkdemo()
執(zhí)行結(jié)果:
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Python GUI編程學(xué)習(xí)筆記之tkinter界面布局顯示詳解
- python tkinter GUI繪制,以及點(diǎn)擊更新顯示圖片代碼
- python GUI編程(Tkinter) 創(chuàng)建子窗口及在窗口上用圖片繪圖實(shí)例
- Python Tkinter模塊 GUI 可視化實(shí)例
- Python GUI Tkinter簡(jiǎn)單實(shí)現(xiàn)個(gè)性簽名設(shè)計(jì)
- python3.6 +tkinter GUI編程 實(shí)現(xiàn)界面化的文本處理工具(推薦)
- Python Tkinter GUI編程入門介紹
- Python中使用Tkinter模塊創(chuàng)建GUI程序?qū)嵗?/a>
- 關(guān)于Python Tkinter Button控件command傳參問題的解決方式
- Python tkinter 下拉日歷控件代碼
- Python Tkinter基礎(chǔ)控件用法
- Python GUI編程學(xué)習(xí)筆記之tkinter控件的介紹及基本使用方法詳解
相關(guān)文章
Python表格數(shù)據(jù)處理庫(kù)之tablib庫(kù)詳解
這篇文章主要介紹了Python表格數(shù)據(jù)處理庫(kù)之tablib庫(kù)詳解,Tablib是一個(gè)用于處理電子表格數(shù)據(jù)的Python庫(kù),它可以輕松地進(jìn)行數(shù)據(jù)的導(dǎo)入和導(dǎo)出,以及數(shù)據(jù)格式的轉(zhuǎn)換,需要的朋友可以參考下2023-08-08使用python?matplotlib畫折線圖實(shí)例代碼
Matplotlib是一個(gè)Python工具箱,用于科學(xué)計(jì)算的數(shù)據(jù)可視化,下面這篇文章主要給大家介紹了關(guān)于如何使用python?matplotlib畫折線圖的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-04-04Python中實(shí)現(xiàn)兩個(gè)字典(dict)合并的方法
這篇文章主要介紹了Python中實(shí)現(xiàn)兩個(gè)字典(dict)合并的方法,是Python程序設(shè)計(jì)中非常實(shí)用的技巧,需要的朋友可以參考下2014-09-09用python對(duì)oracle進(jìn)行簡(jiǎn)單性能測(cè)試
這篇文章主要介紹了用python對(duì)oracle進(jìn)行簡(jiǎn)單性能測(cè)試的示例,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2020-12-12Python?Pandas聚合函數(shù)的應(yīng)用示例
Pandas是當(dāng)前Python數(shù)據(jù)分析中最為重要的工具,其提供了功能強(qiáng)大且靈活多樣的API,可以滿足使用者在數(shù)據(jù)分析和處理中的多種選擇和實(shí)現(xiàn)方式,下面這篇文章主要給大家介紹了關(guān)于Python?Pandas聚合函數(shù)的相關(guān)資料,需要的朋友可以參考下2022-07-07