TK在大多数 Unix平台、Windows平台和Macintosh系统都是预装好的,TKinter 模块是 Tk GUI 套件的标准Python接口。可实现Python的GUI编程。
Tkinter模块(“Tk 接口”)是python的标准Tk GUI工具包的接口.Tk和Tkinter可以在大多数的Unix平台下使用,同样可以应用在Windows和Macintosh系统里.Tk8.0的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中。(百度百科)
安装:sudo apt-get install python-tk
安装:sudo apt install tk-dev
重新安装python3环境:
进入python版本解压目录:cd python3.7
命令:./configure
命令:make
命令:sudo make install
指定版本安装: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='.*?'#括号里的.*?表示要取的值
#取图片地址
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()
其他补充:
按钮标签:
设置是否可点击buttonx.config(state=DISABLED)//不可按 NORMAL为正常
改变文字:buttonx[“text”]=“改变文字”
Lab标签:
改变文字内容:labx.config(text=“改变文字”)
改变文字样式:labx.config(font=(“xx”,100,“bold”)) #字体,大小,加粗
grid为表格布局
lab2.grid(row=2,columnspan=2)#columnspan为跨列两行
sticky=“ew”#横向占满填充
其它属性:
padx和pady=10 #设置边距
bg为背景色;fg为前景色
布局默认:将页面尺寸去掉,则自动根据内容大小动态包裹
鼠标移动到此次改变箭头样式:标签.config(cursor=“gumby”)
对齐方式:anchor=W //W左E右
浮雕效果:relief=SUNKEN
pack布局:
标签.pack()默认为上居中随窗口移动不变
标签.pack(fill=X)#横向大小填充,内容居中
标签.pack(fill=BOTH,expand=True)#纵向大小填充,内容居中
标签.pack(fill=BOTH,expand=True)#填充全部,内容居中
标签.pack(side=LEFT) #全部向左靠
可绑定的事件:
单击鼠标左键:
左键移动:
左键释放:
双击左键:
进入:
离开:
获得光标:
光标离开:
回车键:
按任意键:
事件处理函数形参可用值:
输出点击的坐标:event.x event.y 如:事件
输出键盘按键对应的符号:event.char 如:事件