基于python的界面Windows小程序开发

一、Python Gui
选用python自带的Tkinter库,优点是可快速创建GUI应用程序,比较简单,只需要import tkinter就可以使用。

from tkinter import *#导入tkinter库
    
    root = Tk()#创建窗口,与root.mainloop()配合使用,才可以显示
    root.title("TifMerge")#窗口标签
    root.geometry("450x450")#窗口大小

    entry = Entry(root, width=60)#创建文本框,宽度60
    entry.grid(row=0, column=0, columnspan=4, padx=12, pady=2)#grid页面布局,0行0列,距离左边框12,上边框2
    
    button = Button(root, text="选择文件夹", command=callback)
    button.grid(sticky=W, row=1, column=0, padx=12, pady=5)
    # 创建loistbox用来显示所有文件名
    listbox_filename = Listbox(root, width=60)
    listbox_filename.grid(row=2, column=0,
                          padx=12, pady=5, sticky=W + E + S + N)

    Button(root, text="设置灰度值", command=GrayList).grid(sticky=W, row=6, column=0, padx=12, pady=5)
    Button(root, text="默认值", command=Default).grid(sticky=E, row=6, column=0, padx=12, pady=5)

    grayvalue=StringVar()
    gray = Entry(root, width=30,textvariable = grayvalue).grid(row=7, column=0,sticky=W, padx=12, pady=5)
    default = StringVar()
    Entry(root, width=30, textvariable=default).grid(row=7, column=0, sticky=E,padx=12, pady=5)
    # ##path choice####################
    path=StringVar()
    Button(root, text = "路径选择", command = OutPut).grid(sticky=W + N,row = 10, column =0,padx=12, pady=5)
    Entry(root, width=60,textvariable = path).grid(row=11, column=0, sticky=W,padx=12, pady=5)

    button_Merge = Button(root, text="Run", command = Merge)
    button_Merge.grid(sticky=W + N, row=12, column=0, padx=12, pady=5)
    
    root.mainloop()#消息循环 显示窗口

二、打包
1.安装 PyInstaller:
pip install pyinstaller
2.打包
pyinstaller -F xxx.py

打包所遇到的问题:

在执行打包命令,打包完毕后,显示打包成功,生成dist文件夹存放xx.exe应用程序,但双击后并不能正常使用,但本地直接运行.py并没有问题。

解决方法:

每个项目可能遇到的问题并不相同,需要做的就是根据终端提示逐一解决。

不要双击exe文件,因为错误时直接闪退,无法看到错误提示信息,直接用poweshell或cmd终端打开,执行exe文件:

python写个小程序 python编写小程序_python

此处提示没有tiff.h文件,一般也会遇到没有.dll文件的情况,都是根据提示,在指定目录下复制所缺文件,我的EXE目录下没有include目录,因此我在EXE目录下新建include目录,并在安装libtiff包(python包)路径下搜索到tiff.h文件,复制到新建include文件下,此条错误完美解决,如果提示缺少.dll文件的,方法还是一样,在代码导入包的安装路径下找到相应的文件复制到错误提示的位置即可。

python写个小程序 python编写小程序_应用程序_02

再次运行,又有了新的错误提示,"ValueError: Failed to find TIFF header file (may be need to run: sudo apt-get install libtiff4-dev)
[25464] Failed to execute script ‘TifMerge’ due to unhandled exception! "

百度了好久,都没能解决, 提示的方法sudo apt-get install libtiff4-dev为linux代码,win不适用,最后发现,只要按着提示逐一排查,便可以解决,在libtiff安装路径下找到ibtiff\libtiff_ctypes.py文件,查看63行:

python写个小程序 python编写小程序_python_03

发现有这样一个判断,不存在则显示错误的提示,直接将该行代码注释掉,不做判断,完美解决。

python写个小程序 python编写小程序_错误提示_04

exe程序可正常执行

python写个小程序 python编写小程序_错误提示_05

python写个小程序 python编写小程序_python_06