TK 在大多数 Unix 平台, Windows 平台和 Macintosh 系统都是预装好的, TKinter 模块是 Tk GUI 套件的标准 Python 接口. 可实现 Python 的 GUI 编程.
Tkinter 模块 ("Tk 接口") 是 python 的标准 Tk GUI 工具包的接口. Tk 和 Tkinter 可以在大多数的 Unix 平台下使用, 同样可以应用在 Windows 和 Macintosh 系统里. Tk8.0 的后续版本可以实现本地窗口风格, 并良好地运行在绝大多数平台中.(百度百科)
一般的环境里直接 import tkinter 即可使用, 但 Ubuntu 里既然没有, 所以要自己安装, 因为笔者 Ubuntu 系统里默认有 python2,python3 是自己后来安装的, 查阅资料得到结果是 tkinter 安装成功后, 并没有和 python3 成功链接, 需要重新安装 python3 才可以.
安装: sudo apt-get install python-tk
安装: sudo apt install tk-dev
重新安装 python3 环境:
进入 python 版本解压目录: cd python3.7
命令:./configure
命令: make
命令: sudo make install
显示图片需安装 pillow 库 :
指定版本安装: sudo pip3 install Pillow==4.3.0
下面先用一个小爬虫程序入门 python 的 tkinter 编程:
效果:
程序:
- from tkinter import *
- from tkinter import messagebox
- from PIL import Image,ImageTk
- import re #正则表达式
- import requests
- def butonck():
- #改变 lab 颜色
- labelx["fg"]="green"
- #获取输入框值
- textx=entryx.get()
- #去掉字符串前后空格
- textx=textx.strip()
- if textx=='':
- #弹出提示框
- messagebox.showinfo("东东提示","输入不可为空")
- else:
- #字典数据
- datax={
- "word":textx,
- "sizes":60,
- "fonts":"lfc.ttf",
- "fontcolor":"#000000"
- }
- rx=requests.post("http://www.uustv.com/",data=datax)
- rx.encoding="utf-8"
- htmlx=rx.text #网站源码
- zz='<div class="tu">.*?<img src="(.*?)"/></div>'# 括号里的.*? 表示要取的值
- #取图片地址
- imagex=re.findall(zz,htmlx)
- #取图片数据
- imagedatax=requests.get("http://www.uustv.com/"+imagex[0]).content
- #打开文件
- ff=open('{}.gif'.format(textx),"wb")
- #写图片数据
- ff.write(imagedatax)
- #
- bmx=ImageTk.PhotoImage(file='{}.gif'.format(textx))
- lab2=Label(rview,image=bmx)
- lab2.bm=bmx
- lab2.grid(row=2,columnspan=2)
- #创建窗口
- rview=Tk()
- #标题
- rview.title("东小东标题党")
- #窗口大小 长高用小写 x 隔开
- #rview.geometry("600x300")
- #窗口基于屏幕的坐标 +x 轴 + y 轴
- rview.geometry("+500+200")
- #创建 lab 标签
- labelx=Label(rview,text="签名",fg="red",font=("宋体",30))
- #显示 lab 标签 网格布局 sticky=W #左对齐 E 为右对齐 默认为中间对齐
- labelx.grid(row=0,column=0)
- #创建输入框
- entryx=Entry(rview,font=("宋体",20))
- #显示输入框
- entryx.grid(row=0,column=1)
- #创建按钮
- buttonx=Button(rview,text="确定",font=("宋体",30),command=butonck)
- #显示按钮
- buttonx.grid(row=1,column=2)
- #显示后改变按钮属性
- #buttonx["width"]=2
- #消息循环 显示窗口
- rview.mainloop()
其他补充:
- lab2.grid(row=2,columnspan=2)#columnspan 为跨列两行
- sticky="ew"# 横向占满填充
来源: https://www.cnblogs.com/dongxiaodong/p/9971974.html