iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >怎么利用python写GUI及生成.exe可执行文件
  • 757
分享到

怎么利用python写GUI及生成.exe可执行文件

2023-06-22 06:06:21 757人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

怎么利用python写GUI及生成.exe可执行文件,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一.GUI(Graphical User Interface(图形用户接口))

怎么利用python写GUI及生成.exe可执行文件,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

    一.GUI(Graphical User Interface(图形用户接口))

    1.导入需要用到的包

    import tkinter as tkimport tkinter.messageboximport copyimport os

    2.获取文件夹中所有图片

    def get_picture(dirs):    '''获得所有图片'''    picture_list = []    for dir, dir_abs, files in os.walk(dirs):        for file in files:            if file.endswith('.png'):  # 注意检查分析数据格式                picture_list.append(os.path.join(dir, file))    return picture_list

    3.定义一个类windows

    class Window:    button_list = []    object_list = []    pictures = get_picture("F:\\pic\\class-1\\classresnet\\data\\dangerous")    file = pictures[0]    is_show = True    index = 0    image_file = ''

    4.创建窗口和frame

    def __init__(self):        '''创建窗口和frame'''        self.window = tk.Tk()        self.window.title('护目镜安全检测')        self.window.geometry('600x400')        self.frame = tk.Frame(self.window)        self.frame.pack()        self.frame_l = tk.Frame(self.frame)        self.frame_r = tk.Frame(self.frame)        self.frame_l.pack(side='left')        self.frame_r.pack(side='right')        self.frame_ll = tk.Frame(self.frame_r)        self.frame_rr = tk.Frame(self.frame_r)        self.frame_ll.pack(side='left')        self.frame_rr.pack(side='right')

    5.定义需要用到的函数(下一页、上一页等按钮要用到的)

    def next_picture(self):        '''下一张图片'''        self.index = self.pictures.index(self.file)        self.index += 1        if self.index < len(self.pictures):            self.checkout_button()            self.file = self.pictures[self.index]            self.create_canvas(self.file)        else:            self.index = len(self.pictures) - 1            tkinter.messagebox.showinfo('提示', '已近是最后一张了')     def checkout_button(self):        '''判断列表中是否只有button对象'''        object_list_copy = copy.copy(self.object_list)        for ob in self.object_list:            if ob in self.button_list:                pass            else:                b = object_list_copy.pop(self.object_list.index(ob))                b.destroy()        self.object_list = object_list_copy     def pre_picture(self):        '''上一页'''        self.index = self.pictures.index(self.file)        self.index -= 1        if self.index >= 0:            self.checkout_button()            self.file = self.pictures[self.index]            self.create_canvas(self.file)        else:            self.index = 0            tkinter.messagebox.showinfo('提示', '已经是第一张了')     def show_picture(self):        '''展示图片和翻页按钮'''        self.file = self.pictures[0]        if self.is_show:            self.is_show = False            self.create_canvas(self.file)            button1 = tk.Button(self.frame_ll, text='上一张', font=('Arial', 12), width=10, height=1, bg='orange',                                command=self.pre_picture, relief='ridge', )            button1.pack()            button2 = tk.Button(self.frame_rr, text='下一张', font=('Arial', 12), width=10, height=1, bg='orange',                                command=self.next_picture, relief='ridge', )            button2.pack()            self.button_list.append(button1)            self.button_list.append(button2)            self.object_list.extend(self.button_list)        else:            self.is_show = True            while self.object_list:                o = self.object_list.pop()                o.destroy()

    6.创建按钮、画布,调用主程序

    def new_button(self):        '''创建展示按钮'''"开始检测和显示结果可在此处新添加tk.button"        tk.Button(self.frame_l, text='开始读取', font=('Arial Black', 12), width=10, height=1, bg='green',                  command=self.show_picture, relief='ridge').pack()        # tk.Button(self.frame_l, text='开始检测', font=('Arial Black', 12), width=10, height=1, bg='blue',command=classresnet, relief='ridge').pack()     def create_canvas(self, file):        '''用画布展示图片'''        self.image_file = tk.PhotoImage(file=file)        canvas = tk.Canvas(self.frame_r, height=500, width=600, bg='gray')        canvas.create_image(1, 1, anchor='nw', image=self.image_file)        canvas.pack()        self.object_list.append(canvas)     def run(self):        '''主程序调用'''        self.window.mainloop() if __name__ == '__main__':     w = Window()    w.new_button()    w.run()

    效果展示

    怎么利用python写GUI及生成.exe可执行文件怎么利用python写GUI及生成.exe可执行文件

    完整代码

    import tkinter as tkimport tkinter.messageboximport copyimport os# from glob2 import glob# import main """Graphical User Interface(图形用户接口)"""def get_picture(dirs):    '''获得所有图片'''    picture_list = []    for dir, dir_abs, files in os.walk(dirs):        for file in files:            if file.endswith('.png'):  # 注意检查分析数据格式                picture_list.append(os.path.join(dir, file))    return picture_list   class Window:    button_list = []    object_list = []     # for pngfile in glob("F:\\pic\\class-1\\classresnet\\datas\\*.png"):    #     main.image_demo()    #     output_dir = "F:\\pic\\class-1\\classresnet\\data\\try"  # 保存截取的图像目录    #     print('图片获取完成 。。。!')    #    # main.classresnet()     pictures = get_picture("F:\\pic\\class-1\\classresnet\\data\\dangerous")    file = pictures[0]    is_show = True    index = 0    image_file = ''     def __init__(self):        '''创建窗口和frame'''        self.window = tk.Tk()        self.window.title('护目镜安全检测')        self.window.geometry('600x400')        self.frame = tk.Frame(self.window)        self.frame.pack()        self.frame_l = tk.Frame(self.frame)        self.frame_r = tk.Frame(self.frame)        self.frame_l.pack(side='left')        self.frame_r.pack(side='right')        self.frame_ll = tk.Frame(self.frame_r)        self.frame_rr = tk.Frame(self.frame_r)        self.frame_ll.pack(side='left')        self.frame_rr.pack(side='right')     def next_picture(self):        '''下一张图片'''        self.index = self.pictures.index(self.file)        self.index += 1        if self.index < len(self.pictures):            self.checkout_button()            self.file = self.pictures[self.index]            self.create_canvas(self.file)        else:            self.index = len(self.pictures) - 1            tkinter.messagebox.showinfo('提示', '已近是最后一张了')     def checkout_button(self):        '''判断列表中是否只有button对象'''        object_list_copy = copy.copy(self.object_list)        for ob in self.object_list:            if ob in self.button_list:                pass            else:                b = object_list_copy.pop(self.object_list.index(ob))                b.destroy()        self.object_list = object_list_copy     def pre_picture(self):        '''上一页'''        self.index = self.pictures.index(self.file)        self.index -= 1        if self.index >= 0:            self.checkout_button()            self.file = self.pictures[self.index]            self.create_canvas(self.file)        else:            self.index = 0            tkinter.messagebox.showinfo('提示', '已经是第一张了')     def show_picture(self):        '''展示图片和翻页按钮'''        self.file = self.pictures[0]        if self.is_show:            self.is_show = False            self.create_canvas(self.file)            button1 = tk.Button(self.frame_ll, text='上一张', font=('Arial', 12), width=10, height=1, bg='orange',                                command=self.pre_picture, relief='ridge', )            button1.pack()            button2 = tk.Button(self.frame_rr, text='下一张', font=('Arial', 12), width=10, height=1, bg='orange',                                command=self.next_picture, relief='ridge', )            button2.pack()            self.button_list.append(button1)            self.button_list.append(button2)            self.object_list.extend(self.button_list)        else:            self.is_show = True            while self.object_list:                o = self.object_list.pop()                o.destroy()     # def code_button(self):    #     tk.Button(self.frame_l, text='开始检测', font=('Arial Black', 12), width=10, height=1, bg='blue',    #               command=main.classresnet, relief='ridge').pack()     def new_button(self):        '''创建展示按钮'''"开始检测和显示结果可在此处新添加tk.button"        tk.Button(self.frame_l, text='开始读取', font=('Arial Black', 12), width=10, height=1, bg='green',                  command=self.show_picture, relief='ridge').pack()        # tk.Button(self.frame_l, text='开始检测', font=('Arial Black', 12), width=10, height=1, bg='blue',command=classresnet, relief='ridge').pack()     def create_canvas(self, file):        '''用画布展示图片'''        self.image_file = tk.PhotoImage(file=file)        canvas = tk.Canvas(self.frame_r, height=500, width=600, bg='gray')        canvas.create_image(1, 1, anchor='nw', image=self.image_file)        canvas.pack()        self.object_list.append(canvas)     def run(self):        '''主程序调用'''        self.window.mainloop() if __name__ == '__main__':      w = Window()    w.new_button()    w.run()

    二.生成exe文件

    在windows下,可以使用pyinstaller打包Python程序为exe可执行程序。

    1.安装pyinstaller

    在cmd命令行窗口运行以下命令安装pyinstaller

    pip install pyinstaller

    2.打包python程序

    在python程序所在目录,执行以下命令

    pyinstaller -F xxx.py -w

    注:如果不加-w,生成的exe文件会同时出现命令行窗口

    3.运行exe文件

    打包完成后,在对应目录会出现build和dist文件夹,exe文件就出现在dist文件夹,直接运行即可。

    4.常用命令参数

    (1) -F 指定打包后只生成一个exe格式的文件(dist文件只有一个exe格式的文件T1)

    pyinstaller -F T1.py

    (2) -i 改变生成程序的icon图标

    pyinstaller -F -i ./my.ico T1.py

    (3) -n NAME,–name=NAME 设置产生文件的名字(mypy)

    pyinstaller -F -n mypy -i ./my.ico T1.py

    效果展示

    怎么利用python写GUI及生成.exe可执行文件

    执行exe应用

    因为是exe应用,是可执行文件了,所以直接双击运行即可,运行效果如下图所示:

    怎么利用python写GUI及生成.exe可执行文件

    看完上述内容,你们掌握怎么利用python写GUI及生成.exe可执行文件的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注编程网Python频道,感谢各位的阅读!

    --结束END--

    本文标题: 怎么利用python写GUI及生成.exe可执行文件

    本文链接: https://www.lsjlt.com/news/302940.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • 怎么利用python写GUI及生成.exe可执行文件
      怎么利用python写GUI及生成.exe可执行文件,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一.GUI(Graphical User Interface(图形用户接口))...
      99+
      2023-06-22
    • 如何利用python写GUI及生成.exe可执行文件
      目录一.GUI(Graphical User Interface(图形用户接口))1.导入需要用到的包2.获取文件夹中所有图片3.定义一个类windows4.创建窗口和frame5....
      99+
      2024-04-02
    • 使用Python生成可执行的.exe文件
      使用Python生成可执行的.exe文件 生成可执行文件的优点: 不需要安装对应的编程环境;可以将你的应用闭源;用户方便、快捷地使用。 打包工具:pyinstaller Python是一个脚本语言,被...
      99+
      2023-09-09
      python linux 开发语言
    • Java怎么生成exe可执行文件
      这篇文章主要介绍了Java怎么生成exe可执行文件的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java怎么生成exe可执行文件文章都会有所收获,下面我们一起来看看吧。一、软件准备 下载将jar包转化为EXE的...
      99+
      2023-07-05
    • 【利用pycharm将python程序生成.exe执行文件】
      Python 学习笔记 一只小白自学Python的成长史 文章目录 Python 学习笔记一、安装pyinstaller包二、应用步骤2.1 在包中下载pyinstaller2.2 在The...
      99+
      2023-10-03
      python pycharm 开发语言
    • python将写好的程序打包成exe可执行文件
      目录1、安装pyinstaller2、使用pyinstaller 打包程序2.1 开始打包2.2 查收exe文件前言: 首先 如果你的python是64位的编译器,那么打包的结果就只...
      99+
      2024-04-02
    • python代码打包成可执行文件(exe)
      【前言】:我们在开发完一个小项目后,想要把项目发布出来给别人用。通常都会把代码打包成exe后再给别人,而不是让别人去安装运行环境再跑裸代码。本文就是介绍如何使用pyinstaller这个工具将pyth...
      99+
      2023-09-02
      python 开发语言
    • pycharm写完代码怎么生成可执行文件
      可执行文件导出步骤:设置项目结构,主脚本命名为 main.py。创建虚拟环境(可选),隔离依赖项。构建可执行文件,指定输出文件夹和格式。查找可执行文件,位置在指定输出文件夹。运行可执行文...
      99+
      2024-04-25
      python pycharm 系统安装
    • makefile怎么生成可执行文件
      要将C或C++代码编译成可执行文件,可以使用Makefile来实现。以下是一个简单的Makefile示例,用于将一个名为"hello...
      99+
      2023-09-12
      makefile
    • pycharm怎么生成可执行文件
      可以通过 pycharm 将 python 脚本转换为可执行文件,以在没有 python 解释器的情况下运行。步骤如下:创建或打开 python 脚本。配置项目并选择正确的 python...
      99+
      2024-04-25
      linux python macos pycharm
    • labview怎么生成可执行文件
      要生成LabVIEW可执行文件,您需要按照以下步骤操作: 打开您的LabVIEW项目。 选择您想要生成可执行文件的VI文件。 在L...
      99+
      2024-03-07
      labview
    • python3怎么生成可执行文件
      要将Python程序生成可执行文件,你可以使用PyInstaller或cx_Freeze等工具来完成。下面是使用PyInstalle...
      99+
      2023-09-15
      python3
    • Python如何实现学生管理系统并生成exe可执行文件
      这篇文章主要介绍了Python如何实现学生管理系统并生成exe可执行文件,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、准备工作用到的软件准备一哈Python 3.8Pyc...
      99+
      2023-06-28
    • 【Python打包成exe】快速将多个py文件及其他文件打包为exe可执行文件
      使用概述: 尝试了很多种Python打包为exe可执行文件的方式,通过总结,得出一种最简洁、最有效的打包方式分享给大家! 步骤一(准备好安装文件): 准备好将要打包的工程文件(夹) 如上图所示,首先...
      99+
      2023-09-06
      python pycharm 前端
    • 多个Python文件打包成一个可执行文件(.exe)文件
      安装Pyinstaller 首先我们要先安装Pyinstaller,直接在cmd使用pip命令  pip install pyinstaller  如果网速太慢可以切换国内源来加速  pip install -i https://pypi....
      99+
      2023-09-24
      python
    • python中3种调用可执行文件.exe
      方法一、os.system()  会保存可执行程序中的打印值和主函数的返回值,且会将执行过程中要打印的内容打印出来import os main = "project1.exe" r_v = os.system(main)  print...
      99+
      2023-01-31
      可执行文件 python exe
    • 怎么将pyqt5项目打包成exe可执行文件
      怎么将pyqt5项目打包成exe可执行文件?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。安装python3.6转exe会遇到很多问题,其中部分是由于python版本不合适引...
      99+
      2023-06-15
    • 如何利用pyinstaller打包Python程序为exe可执行文件
      序 对于如何将py文件打包生成exe可执行文件最简单的应该我觉得就是使用pyinstaller第三方模块 下面我就分为三个步骤给大家讲解如何使用 并分享一点小技巧 下面直接进入分享啦...
      99+
      2024-04-02
    • Python实现学生管理系统并生成exe可执行文件详解流程
      目录一、准备工作二、代码流程三、打包exe可执行程序话说这能难倒我吗?赶赶单单~ 来 ,开搞! 一、准备工作 用到的软件准备一哈 Python 3.8 Pycha...
      99+
      2024-04-02
    • Python程序打包成可执行文件exe流程是什么
      这篇文章主要讲解了“Python程序打包成可执行文件exe流程是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python程序打包成可执行文件exe流程是什么”吧!1、 什么是 auto...
      99+
      2023-06-25
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作