为了账号安全,请及时绑定邮箱和手机立即绑定

Python的GUI编程(TK)

标签:
Python

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编程:

 

效果:

 

程序:

复制代码

 1 from tkinter import * 
 2 from tkinter import messagebox 3 from PIL import Image,ImageTk 4 import re #正则表达式 5 import requests 6 def butonck(): 7     #改变lab颜色 8     labelx["fg"]="green" 9     #获取输入框值10     textx=entryx.get()11     #去掉字符串前后空格12     textx=textx.strip()13     if textx=='':14       #弹出提示框15       messagebox.showinfo("东东提示","输入不可为空")16     else:17       #字典数据18       datax={19            "word":textx,20            "sizes":60,21            "fonts":"lfc.ttf",22            "fontcolor":"#000000"23       }24       rx=requests.post("http://www.uustv.com/",data=datax)25       rx.encoding="utf-8"26       htmlx=rx.text #网站源码27       zz='<div class="tu">.*?<img class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="(.*?)"/></div>'#括号里的.*?表示要取的值28       #取图片地址29       imagex=re.findall(zz,htmlx)30       #取图片数据31       imagedatax=requests.get("http://www.uustv.com/"+imagex[0]).content32       #打开文件33       ff=open('{}.gif'.format(textx),"wb")34       #写图片数据35       ff.write(imagedatax)36       #37       bmx=ImageTk.PhotoImage(file='{}.gif'.format(textx))38       lab2=Label(rview,image=bmx)39       lab2.bm=bmx40       lab2.grid(row=2,columnspan=2)41 #创建窗口42 rview=Tk()43 #标题44 rview.title("东小东标题党")45 #窗口大小 长高用小写x隔开46 #rview.geometry("600x300")47 #窗口基于屏幕的坐标 +x轴+y轴48 rview.geometry("+500+200")49 #创建lab标签50 labelx=Label(rview,text="签名",fg="red",font=("宋体",30))51 #显示lab标签 网格布局 sticky=W #左对齐 E为右对齐 默认为中间对齐52 labelx.grid(row=0,column=0)53 #创建输入框54 entryx=Entry(rview,font=("宋体",20))55 #显示输入框56 entryx.grid(row=0,column=1)57 #创建按钮58 buttonx=Button(rview,text="确定",font=("宋体",30),command=butonck)59 #显示按钮60 buttonx.grid(row=1,column=2)61 #显示后改变按钮属性62 #buttonx["width"]=263 64 65 #消息循环 显示窗口66 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) #全部向左靠

 

可绑定的事件:

单击鼠标左键:<Button-1> #其中1为鼠标左键,2为鼠标右键,3为鼠标中键

左键移动:<B1-Motion>

左键释放:<ButtonRelease-1>

双击左键:<Double-Button-1>

进入:<Enter>

离开:<Leave>

获得光标:<FocusIn>

光标离开:<FoucusOut>

回车键:<Return>(F1,F2,F3,Delete…)

按任意键:<Key>

 

事件处理函数形参可用值:

输出点击的坐标:event.x event.y        如:<Button-1>事件

输出键盘按键对应的符号:event.char     如:<Key>事件

 

获取鼠标点击坐标实现:

 

关闭程序是出现弹出提示框:

 

 

 


Python的tkinter参考:http://effbot.org/tkinterbook

原文出处:https://www.cnblogs.com/dongxiaodong/p/9971974.html  

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消