Python的GUI编程(TK)
TK在大多数 Unix平台、Windows平台和Macintosh系统都是预装好的,TKinter 模块是 Tk GUI 套件的标准Python接口。可实现Python的GUI编程。 Tkinter模块("Tk 接口")是python的标准Tk GUI工具包的接口.Tk和Tkinter可以在大多数的Unix平台下使用,同样可以应用在Windows和Macintosh系统里.Tk8.0的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中。(百度百科) <p align="left">一般的环境里直接import tkinter即可使用,但Ubuntu里既然没有,所以要自己安装,因为笔者Ubuntu系统里默认有python2,python3是自己后来安装的,查阅资料得到结果是tkinter安装成功后,并没有和python3成功链接,需要重新安装python3才可以。 <p align="left">安装:sudo apt-get install python-tk <p align="left">安装:sudo apt install tk-dev <p align="left">重新安装python3环境: <p align="left">进入python版本解压目录:cd python3.7 <p align="left">命令:./configure <p align="left">命令:make <p align="left">命令:sudo make install <p align="left">? <p align="left">显示图片需安装pillow库 : <p align="left">指定版本安装:sudo pip3 install Pillow==4.3.0 <p align="left">? <p align="left">? <p align="left"><span style="font-size: 14px;">下面先用一个小爬虫程序入门python的tkinter编程: <p align="left">? <p align="left">效果: 程序: tkinter *
tkinter PIL re
labelx[]=
textx=
textx= textx==
messagebox.showinfo(,
datax= :60 : :
rx=requests.post(,data= rx.encoding=
htmlx=rx.text
zz=
imagex=
imagedatax=requests.get(+
ff=open(.format(textx),
bmx=ImageTk.PhotoImage(file= lab2=Label(rview,image= lab2.bm= lab2.grid(row=2,columnspan=2
rview=
rview.title(
rview.geometry(
labelx=Label(rview,text=,fg=,font=(,30
labelx.grid(row=0,column=
entryx=Entry(rview,20
entryx.grid(row=0,column=1
buttonx=Button(rview,text=,30),command=
buttonx.grid(row=1,column=2
rview.mainloop()
其他补充: <p align="left">按钮标签: <p align="left">设置是否可点击buttonx.config(state=DISABLED)//不可按 NORMAL为正常 <p align="left">改变文字:buttonx["text"]="改变文字" <p align="left">? <p align="left">Lab标签: <p align="left">改变文字内容:labx.config(text="改变文字") <p align="left">改变文字样式:labx.config(font=("xx",100,"bold")) #字体,大小,加粗 <p align="left">? <p align="left">grid为表格布局 <p align="left">lab2.grid(row=2,columnspan=2)#columnspan为跨两列,对应?rowspan为跨行 <p align="left">sticky=“ew”#横向占满填充 <p align="left">? <p align="left">其它属性: <p align="left">padx和pady=10 #设置边距 <p align="left">bg为背景色;fg为前景色 <p align="left">布局默认:将页面尺寸去掉,则自动根据内容大小动态包裹 <p align="left">鼠标移动到此次改变箭头样式:标签.config(cursor="gumby") <p align="left">对齐方式:anchor=W //W左E右 <p align="left">浮雕效果:relief=SUNKEN <p align="left">? <p align="left">pack布局: <p align="left">标签.pack()默认为上居中随窗口移动不变 <p align="left">标签.pack(fill=X)#横向大小填充,内容居中 <p align="left">标签.pack(fill=BOTH,expand=True)#纵向大小填充,内容居中 <p align="left">标签.pack(fill=BOTH,expand=True)#填充全部,内容居中 <p align="left">标签.pack(side=LEFT) #全部向左靠 <p align="left">? <p align="left">加载一张图片: <p align="left">imgx = PhotoImage(file='dong.gif') <p align="left">label = Label(image=imgx,width=20,height=20) label.image = imgx label.grid(row=1,column=1,sticky=W + E + N + S,padx=10,pady=10) #sticky=W + E + N + S 表示填充控件
可绑定的事件: #其中1为鼠标左键,2为鼠标右键,3为鼠标中键 (F1,F2,F3,Delete…)
事件处理函数形参可用值: 事件 事件
获取鼠标点击坐标实现: <p align="left">关闭程序是出现弹出提示框: ? 子容器: tkinter *
rview=
rview.title(
rview.geometry(
labelx=Label(rview,text=,30
labelx.grid(row=0,column=1
monty = LabelFrame(rview,text= monty.grid(column=0,row=0,padx=5,pady=5)
buttonx1=Button(monty,text=,20),fg= buttonx1.grid(row=0,column=0)
buttonx2=Button(monty,text=,fg= buttonx2.grid(row=1,column=0)
rview.mainloop()
文本框加滚动条实现: tkinter *
rview=
rview.title(
rview.geometry(
labelx=Label(rview,text=,column=
scrollbar = Scrollbar(rview,orient=VERTICAL,bg=)
scrollbar.grid(row=2,column=
text = Text(rview,width=50,height=10,yscrollcommand= text.grid(row=2,column=
scrollbar.config(command=
rview.mainloop()
添加操作属性: text.delete(0.0,END)
text.insert(END,)
将opencv的图片转换到TK: PIL Image,ImageTk
cv2image = cv2.cvtColor(tux,cv2.COLOR_BGR2RGBA)
current_image = Image.fromarray(cv2image)
imgx = ImageTk.PhotoImage(image= label = Label(image= label.image = label.grid(row=1,column=0,rowspan=4,pady=10)
?
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |