首页 > 编程语言 >python开发桌面应用

python开发桌面应用

时间:2023-07-22 16:12:43浏览次数:32  
标签:桌面 python GUI 应用程序 Python 应用 root 打包

python开发桌面应用的原理主要是利用Python的GUI库来实现图形界面。

Python的GUI库有很多种,例如Tkinter、PyQt、wxPython等等。其中,

Tkinter是Python自带的GUI库,使用比较简单,适合初学者入门。

PyQt是一种基于Qt框架的Python GUI库,功能非常强大,适合开发大型项目。

wxPython是基于C++的wxWidgets库的Python封装,也是一种非常流行的GUI库。

 

3.编写代码

编写Python桌面应用的代码需要熟悉所选GUI库的API和Python的语法。通常情况下,Python桌面应用的代码需要分为两个部分:界面设计和逻辑处理。

界面设计部分需要使用GUI库提供的控件和布局来设计应用程序的界面。逻辑处理部分需要编写Python代码来实现应用程序的功能,例如响应按钮点击事件、处理用户输入等等。

 

5.打包发布应用程序

最后,需要将Python桌面应用打包成可执行文件,并发布应用程序。Python提供了一些打包工具,例如PyInstaller和cx_Freeze等,可以将Python代码打包成可执行文件。发布应用程序需要将打包后的可执行文件和相关文件一起打包,以便用户可以直接运行应用程序。

总之,Python开发桌面应用需要掌握Python的GUI库和模块化编程特性,熟悉Python的语法和常用API,以及使用集成开发环境进行开发和测试。

 

https://www.php.cn/faq/531973.html

2. 安装三方依赖库

创建桌面窗口,这里使用 tkinter,它是 Python 自带的 GUI 库,安装后即可使用。

使用 pyinsatller 将程序打包成 exe,好处是不需要将代码部署到服务器,直接将打包好的 exe 发给对方,就能直接使用,对于这种小而轻的功能非常友好。

 

pyinstaller 指令的常见可选参数:

  • -i 给应用程序添加图标
  • -F 指定打包后只生成一个exe格式的文件
  • -D –onedir 创建一个目录,包含exe文件,但会依赖很多文件(默认选项)
  • -c –console, –nowindowed 使用控制台,无界面(默认)
  • -w –windowed, –noconsole 使用窗口,无控制台
  • -p 添加搜索路径

 

 

 

from tkinter import Tk, Entry, Button, mainloop
import tkinter.filedialog
import excel_to_pivot
from tkinter import messagebox
from tkinter import ttk
def Upload():
global filename, data_pivot_table
try:
filename = tkinter.filedialog.askopenfilename(title='选择文件')
pross = excel_to_pivot.ExcelToPivot(str(filename).split('/')[-1], filename)
data_pivot_table = pross.excel_Pivot()
messagebox.showinfo('Info', '转换成功!')
except Exception as e:
print(e)
messagebox.showinfo('Info', '转换失败!')
def select(name, month):
try:
print('供应商名称 == ["{}"] & 月份 == {}'.format(name, month))
data_new = data_pivot_table.query('供应商名称 == ["{}"] & 月份 == {}'.format(name, month))
data_new.to_excel('{}.xlsx'.format(str(filename).split('.')[0]))
messagebox.showinfo('Info', '筛选完成并生成文件!')
root.destroy()
except Exception as e:
print(e)
messagebox.showinfo('Info', '筛选失败!')
root = Tk()
root.config(background="#6fb765")
root.title('自动转透视表小工具')
root.geometry('500x250')
e1 = Entry(root, width=30)
e1.grid(row=2, column=0)
btn1 = Button(root, text=' 上传文件 ', command=Upload).grid(row=2, column=10, pady=5)
box1 = ttk.Combobox(root)
# 使用 grid() 来控制控件的位置
box1.grid(row=5, sticky="NW")
# 设置下拉菜单中的值
box1['value'] = ('A', 'B', 'C', 'D', '供应商')
# 通过 current() 设置下拉菜单选项的默认值
box1.current(4)
box2 = ttk.Combobox(root)
box2.grid(row=5, column=1, sticky="NW")
box2['value'] = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, '月份')
box2.current(12)
# 编写回调函数,绑定执行事件
def func(event):
global b1, b2
b1 = box1.get()
b2 = box2.get()
# 绑定下拉菜单事件
box1.bind("<>", func)
box2.bind("<>", func)
btn2 = Button(root, text=' 筛选数据 ', command=lambda: select(b1, b2)).grid(row=30, column=10, pady=5)
mainloop()

 

标签:桌面,python,GUI,应用程序,Python,应用,root,打包
From: https://www.cnblogs.com/liushao-AI/p/17573525.html

相关文章

  • usb-serial-for-android的应用
    如何实现“usb-serial-for-android”的应用介绍在本文中,我将向你展示如何使用“usb-serial-for-android”库来实现一个基于USB串行通信的Android应用程序。这个库提供了与USB串行设备交互的功能,帮助我们在Android设备和外部串行设备之间建立通信。准备工作在开始之前,我们需要做......
  • update ClosedSurfaceRepresentation python
    如何实现"updateClosedSurfaceRepresentationpython"流程概述要实现"updateClosedSurfaceRepresentationpython",需要按照以下步骤进行操作:步骤描述1导入所需的模块2加载或创建3D模型3获取闭合曲面的表示4执行更新操作5保存或显示更新后的结果......
  • unity与python通信
    Unity与Python通信Unity是一款功能强大的游戏开发引擎,而Python是一种简单易学的编程语言。将这两者结合起来可以实现更多有趣的功能。本文将介绍如何在Unity中与Python进行通信,并提供代码示例。Unity端设置首先,在Unity中需要安装Python插件。可从UnityAssetStore中下载并导入"......
  • 4.C++和Python
    C++是编译性语言,Python是解释性语言C++编译链接的全过程分为:预编译预编译会执行以下内容:宏替换执行条件编译:#ifdef,#ifndef,#endif#include后面文件内容插入并替换当前行删除注释编译编译会执行以下内容:检查有没有语法错误,没有的话转换为汇编语言,汇编过程再将汇编语言转......
  • Python之Rich库-打印彩色字体,表单,进度条与状态动画
      https://rich.readthedocs.io/en/latest/introduction.html Introduction¶RichisaPythonlibraryforwritingrichtext(withcolorandstyle)totheterminal,andfordisplayingadvancedcontentsuchastables,markdown,andsyntaxhighlightedcode.U......
  • 在ubuntu上用python的好处
    在Ubuntu上使用Python的好处引言Python是一种简单易学、功能强大的编程语言,它在Ubuntu操作系统上广泛应用于各个行业和领域。本文将指导刚入行的开发者如何在Ubuntu上使用Python,并介绍使用Python的好处。整体流程下面的表格展示了在Ubuntu上使用Python的整体流程:步骤描述......
  • 在python中utc时间毫秒格式化保留3位
    在Python中UTC时间毫秒格式化保留3位在计算机编程中,时间的处理是非常重要的。在Python中,有时我们需要将时间格式化为特定的字符串形式,以便于存储、传输或显示。本文将介绍如何在Python中将UTC时间的毫秒部分格式化并保留3位。UTC时间和时区在介绍如何格式化UTC时间之前,我们先了......
  • 在python中,while满足的条件是什么
    在Python中,while循环是一种迭代结构,它会根据一定的条件重复执行一段代码。在每次循环中,都会检查循环条件是否满足,如果满足则执行循环体内的代码,然后再次检查循环条件。只要条件仍然满足,循环就会一直执行下去,直到条件不满足时终止循环。在Python中,while循环的语法如下所示:whileco......
  • Java异常处理应用程序编写
    Java异常处理应用程序编写指南概述Java异常处理是编写健壮应用程序的关键部分之一。当程序运行时发生错误或异常时,异常处理机制允许我们捕获和处理这些异常,以避免程序崩溃或产生意外结果。本文将指导你如何编写Java异常处理应用程序。流程概述下面是Java异常处理应用程序编写的......
  • python设计一个跨模块全局变量
    python中有时候需要用到全局变量,并且这个全局变量需要跨文件,跨模块共享.为此,我设计了一个全局对象,它有以下特点:如果为不存在的属性赋值,则会自动生成这个属性,后续就可以正常引用这个属性,就像对象本身具有此属性一样整个对象可以序列化,后续可以从文件中恢复对......