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