利用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图形,路径什么的最好没有中文,否则易出现问题

 

你可能感兴趣的:(Python)