python之GUI编程-tkinter学习

推荐几个学习网址:
https://www.cnblogs.com/shwee/p/9427975.html

https://cloud.tencent.com/developer/section/1372347#stage-100040129

https://docs.python.org/3/library/tkinter.html

一、源代码

 1 import itchat
 2 import requests
 3 import tkinter
 4 from tkinter import messagebox
 5 
 6 
 7 def func(self):
 8     cont = text2.get(1.0, 'end').replace('
', '')
 9     if len(cont) == 0:
10         messagebox.showinfo("错误", "不能发送空消息")
11         return
12     else:
13         try:
14             req = requests.get('http://i.itpk.cn/api.php', params={'question': cont})
15             text1.config(state='normal')
16             text1.insert(tkinter.INSERT, '我: ' + cont + '
')
17             text1.config(state='disabled')
18             text2.delete('1.0', 'end')
19             text1.config(state='normal')
20             text1.insert(tkinter.INSERT, '夏莉: ' + req.text + '
')
21             text1.config(state='disabled')
22         except:
23             messagebox.showinfo("错误", "发送失败")
24             return
25 
26 
27 def enterkeyfunc(event):
28     if event.keycode == 13:
29         func(event)
30 
31 
32 def mouseenterfunc(event):
33     button1['bg'] = 'green'
34 
35 
36 def mouseleavefunc(event):
37     button1['bg'] = 'white'
38 
39 
40 win = tkinter.Tk()
41 win.title("机器人夏莉")
42 # 宽度x高度+距离屏幕横向400+纵向100
43 win.geometry("400x500+400+100")
44 # 禁止最大化
45 win.wm_resizable(False, False)
46 
47 text1 = tkinter.Text(win, height=26, bg='#e6f1f1')
48 text2 = tkinter.Text(win, height=9, bg='white')
49 button1 = tkinter.Button(win, text="发送(S)", width=8, height=1)
50 
51 text1.pack(anchor=tkinter.N)
52 text2.pack(anchor=tkinter.CENTER)
53 button1.pack(anchor=tkinter.SE)
54 text1.config(state='disabled')
55 
56 text2.focus()
57 
58 # 绑定事件
59 button1.bind("<Button-1>", func)
60 button1.bind("<Enter>", mouseenterfunc)
61 button1.bind("<Leave>", mouseleavefunc)
62 text2.bind("<Key>", enterkeyfunc)
63 
64 win.mainloop()

二、运行结果:

三、打包exe

  1.安装pyinstaller    

  pip install pyinstaller

  2.打包python文件

  pyinstaller -F -w xxx.py

  注:使用-F会在当前目录下的dist文件夹生成一个独立的exe文件,而使用-D(默认选项)则会在当前目录下的dist文件夹生成一个文件夹存放exe以及所有依赖文件。当py文件有窗体时使用-w,在windows下不会显示控制台,-w在*NIX系统里会被忽略。

  参照:https://www.cnblogs.com/pcat/p/8463939.html

四、打包后的exe,下载点击可直接 运行(python>打包程序>RBoot.exe)

链接:https://pan.baidu.com/s/1DqjnZVTgBPSER6v5uGI6mQ 
提取码:0kz3 
注:若链接失效请留言,单独发你哦!

原文地址:https://www.cnblogs.com/zhuanjiao/p/11588346.html