使用python 开发图形化界面,最初开始看B站莫烦的教程,好久忘了,今天自己想做个界面玩玩,并打包成exe玩一下。
直接上手,再翻到莫烦的教程直接看最后,把代码复制,然后改改就可以了。
我的目的很简单,只有一个窗口的图形化界面,并像很多易语言程序一样有一个调试输出的窗口。

按照惯例展示一下我的成品。

下面开始讲解代码。
# -*- coding: UTF-8 -*-import tkinter as tk #安装python,自带这个包from tkinter import END #单独把这个申明是因为后面的往text控件插入内容会报错# 一个顶层窗口的实例(Top Level),也称为根窗口# #------------------------------窗口-----------------------------------#window = tk.Tk() #创建最上层主窗口window.title("小工具") #窗口标题window.geometry("900x600") #窗口大小,中间是英文x,而不能是运算符*,很搞笑#lable 组件是显示文字或图片,第一个参数是父窗口名称。#text,参数显示内容,\n用来换行。每一行居中显示,靠左显示没研究,不需要,没那么高的要求。#font字体,窗口太大,不设置字体,就会很小。#place是依据主窗口的相对位置,,x就是x轴,下面所有的控件都需要这样定位tk.Label(window,text="使用说明:\n1.TOKEN是登陆后的获取加密请求参数;\n2.TOKEN两小时更新一次,需要手动抓包获取;\n3.ID是资源唯一id,需要自己手动查对照表",font=("华文行楷", 20)).place(x=50,y=20)tk.Label(window,text="TOKEN:",font=("华文行楷", 20)).place(x=50,y=150)tk.Label(window,text="ID:",font=("华文行楷", 20)).place(x=50,y=200)#Text组件用于显示和处理多行文本。我用来展示程序的运行状态,输出到这个组件里面show_text = tk.Text()show_text.place(x=320,y=150)#Entry输入框,输入的值必须要定义,这里定义成字符串类型var_token = tk.StringVar()var_id = tk.StringVar()#Entry输入框,输入的值必须要定义entry_token = tk.Entry(window,textvariable = var_token)entry_token.place(x=160,y=150)#Entry输入框entry_id = tk.Entry(window,textvariable = var_id)entry_id.place(x=160,y=200)#按钮组件点击触发的函数,我把输入框的获取到的两个值输出到Text控件#END就是插入到Text控件里面最后。#.get就是获取目标的输入框的方法def get_tar():token = var_token.get()ids =var_id.get()show_text.insert(END, '获取到的token:'+token+ ';获取到的id:'+ids)#Button组件,按钮组件,主要是触发一些功能,command指向一个函数就只触发的功能函数get_detail = tk.Button(window,text='获取',font='20',command = get_tar)get_detail.place(x=170,y=230)#启动主窗口循环window.mainloop()#---------------------------------窗口--------------------------------------#
新手用Text插入的时候会莫名的报错

需要单独导入 END关键字,stack overflow有说明。真的牛逼,搜了半天
from tkinter import END

下面来讲解一下pyinstaller 打包成exe,先pip 安装。
安装命令 :pip install pyinstaller。安装完成后找了半天教程,屡次失败。,还要配置pyinstaller环境变量???
废话不多说。把想要打包的py文件,放在一个没有中文字符的路径 .shift +鼠标右键打开命令窗口
python -m PyInstaller ****.py
注意大小写,都是小写会出现找不到这个包的报错!!!


等待命令执行完成,在命令执行的目录下生成很多文件夹。在命令运行的dist文件目录下面找一个exe文件执行就OK了,功能一切正常。


打包环境是Window7系统还没到其他平台测试。py导入的包只有tkinter。不知道导入其他的包会不会报错。
文章转载自土味工程师,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




