利用Tkinter設計一個小Gui程序(附pyinstaller打包)

Tkinter簡單介紹

是綁定了 Python 的 Tk GUI 工具集 ,就是Python 包裝的Tcl代碼,通過內嵌在 Python 解釋器內部的 Tcl 解釋器實現, Tkinter

的調用轉換成 Tcl 命令,然後交給 Tcl 解釋器進行解釋,實現 Python 的 GUI 界面。

對比Tk和其它語言的綁定,比如 PerlTk ,是直接由 Tk 中的 C 庫實現的。

優點:

歷史最悠久, Python 事實上的標準 GUI , Python 中使用 Tk GUI 工具集的標準接口,已經包括在標準的 Python Windows 安

裝中,著名的 IDLE 就是使用 Tkinter 實現 GUI 的創建的 GUI 簡單,學起來和用起來也簡單。

附維基百科上的簡介:https://en.wikipedia.org/wiki/Tkinter

創建窗口

from tkinter import *

#創建窗口
window=Tk()
#創建標題
window.title("你喜歡我嗎?")
#窗口大小和位置(中間爲字母x)
window.geometry("380x420")
window.geometry("+500+240")
#window.geometry("380x420+500+240")

#顯示窗口(消息循環)
window.mainloop()

 

添加label和button控件



#標籤控件
label=Label(window,text="hey,小姐姐",font=("微軟雅黑",15),fg="red")
#定位    網格佈局 pack包 place位置
label.grid(row=0,column=0)

label1=Label(window,text="喜歡我嗎?",font=("微軟雅黑",30))
#對其方式sticky
label1.grid(row=1,column=1,sticky=E)

#顯示文件
photo=PhotoImage(file="cc.png")
imageLabel=Label(window,image=photo)
imageLabel.grid(row=2,columnspan=2)



#按鈕控件
but=Button(window,text="喜歡",height=2,width=15,command=Love)
but.grid(row=3,column=0,sticky=W)

but1=Button(window,text="不喜歡",command=unLove)
but1.grid(row=3,column=1,sticky=E)

當點擊喜歡button時

def Love():
"""點擊確定時關閉所有窗口,點擊關閉窗口按鈕無反應"""
    #頂級窗口(和messagebox有區別)
    love=Toplevel(window)
    love.geometry('300x180+520+260')
    love.title("好巧,我也是")
    label=Label(love,text="好巧,我也是",font=("微軟雅黑",20))
    label.pack()
    label1=Label(love,text="加個微信吧~~",font=("微軟雅黑",20))
    label1.pack()
    entry=Entry(love,font=("微軟雅黑",18))
    entry.pack()
    btn=Button(love,text="確定",width=10,height=2,command=closeAllWindow)
    btn.pack()
    love.protocol("WM_DELETE_WINDOW",closelove)

def closelove():
    return 

當點擊不喜歡button時

def closeunLove():
    #messagebox.showinfo("再考慮一下","再考慮一下")
    unLove()

def unLove():
"""點擊不喜歡時,彈出的窗口。點擊好的,退出這個窗口,點擊關閉,重新彈出一個窗口"""
    unlove=Toplevel(window)
    unlove.geometry('300x100+520+260')
    unlove.title("再考慮考慮")
    label=Label(unlove,text="再考慮考慮",font=("微軟雅黑",25))
    label.pack()
    btn=Button(unlove,text="好的",width=10,height=2,command=unlove.destroy)
    btn.pack()
    unlove.protocol("WM_DELETE_WINDOW",closeunLove)

當點擊關閉窗口時不讓退出

from tkinter import messagebox

#用戶關閉窗口觸發的事件(第一個刪除窗口,第二個爲函數名,即過程)
window.protocol('WM_DELETE_WINDOW',closeWindow)

def closeWindow():
    messagebox.showinfo(title="警告",message="好好回答,不許關閉")

pyinstaller的應用

  1. 在cmd裏面通過pip安裝pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyinstaller (使用國內的鏡像快很多)
  2. 按住shift鍵,右鍵點擊在此處打開命令窗口
  3. 使用命令pyinstaller -F xxx.py打包成.exe文件
  4. 想去掉黑窗口則輸入pyinstaller -F -w  xxx.py
  5. 想修改圖標則輸入pyinstaller  -F -i xx.ico  xxx.py
  6. 圖標的類型是ico類型,可以在www.bitbug.com轉換成ico圖形,路徑什麼的最好沒有中文,否則易出現問題

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章