[Python]利用tkinter制作一个Python的exe简单打包软件

制作缘由

一方面,想写一个较简单、内含功能较多的tkinter窗口,以便将来给其他程序作模板用。另一方面,用命令行打包exe太麻烦了。

界面预览

若文件地址是手动输入,则点击‘确认’后点击‘打包’。
若文件地址是点击‘选择文件’选定的,则可以直接点击‘打包’。
在这里插入图片描述

代码演示

写完后只是粗略地测试了一下,可能会有一点bug。如果有bug及代码修改方式希望能告知一下,谢谢!!!!
另外,如果有人知道如何更快更好地进行控件排版的话,请再评论区告知,谢谢!!!!

from tkinter import Tk, Button, filedialog, Entry
import os


class Installer:
    def __init__(self):
        self.WIN = Tk()
        self.WIN.title('installer')  # 窗口名
        self.WIN.geometry('400x104+568+380')  # 我的电脑屏幕为1536*864
        self.py_path = ''  # Python文件地址
        self.ico_path = ''  # 图标文件地址

        # 创建控件
        self.py_btn = Button(self.WIN, text='选择py文件', width=10, command=self.event_py)
        self.ico_btn = Button(self.WIN, text='选择ico文件', width=10, command=self.event_ico)
        self.change_btn = Button(self.WIN, text='打包', width=15, command=self.event_change)
        self.qr_btn = Button(self.WIN, text='确认', width=15, command=self.event_qr)

        self.py_entry = Entry(self.WIN, show=None, width=40)
        self.ico_entry = Entry(self.WIN, show=None, width=40)

        # 部署控件
        self.py_btn.place(x=305, y=5)
        self.ico_btn.place(x=305, y=35)
        self.change_btn.place(x=235, y=70)
        self.qr_btn.place(x=40, y=70)
        self.py_entry.place(x=10, y=10)
        self.ico_entry.place(x=10, y=40)

        # 进入窗口循环
        self.WIN.mainloop()

    def event_py(self):  # 点击按钮‘选择py文件’事件
        self.py_path = filedialog.askopenfilename(filetypes=[('Python File', '*.py')])
        self.py_entry.select_clear()
        self.py_entry.insert(0, self.py_path)

    def event_ico(self):  # 点击按钮‘选择ico文件’事件
        self.ico_path = filedialog.askopenfilename(filetypes=[('Icon File', '*.ico')])
        self.ico_entry.select_clear()
        self.ico_entry.insert(0, self.ico_path)

    def event_change(self):  # 点击按钮‘打包’事件
        if self.ico_path == '':
            if not os.path.exists(self.py_path.rstrip('.py')):
                os.mkdir(self.py_path.rstrip('.py'))
            cmd1 = self.py_path[0] + ': & cd ' + self.py_path.rstrip('.py') + \
                   ' & pyinstaller -D -w ' + self.py_path
            os.system(cmd1)
        else:
            if not os.path.exists(self.py_path.rstrip('.py')):
                os.mkdir(self.py_path.rstrip('.py'))
            cmd1 = self.py_path[0] + ': & cd ' + self.py_path.rstrip('.py') + \
                   ' & pyinstaller -D -w -i ' + self.ico_path + ' ' + self.py_path
            os.system(cmd1)

    def event_qr(self):  # 点击按钮‘确认’事件
        self.py_path = str(self.py_entry.get())
        self.ico_path = str(self.ico_entry.get())


if __name__ == '__main__':
    Install = Installer()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值