python Tkinter库详解
来源:互联网 发布:朗朗数码的mac怎么样 编辑:程序博客网 时间:2024/05/21 13:12
python Tkinter是内置的库,无需安装
用具体的实例讲解Tkinter库使用:
用上下左右方向键以及回车对红色方格做出相应的移动
# -*- coding: utf-8 -*-from Tkinter import *def main(): #创建tk对象 tk=Tk() #创建画布 canvas=Canvas(tk,width=400,height=400) canvas.pack() #在画布上创建文字 canvas.create_text(200,40,text="welcome to Tkinter",fill="blue",font=("Times",16)) #在画布上创建图片,tkinter只能显示gif文件 myImage=PhotoImage(file="timg.gif") canvas.create_image(10,70,anchor=NW,image=myImage)#以(10,70)为西北角显示图像 #move中的第一个参数表示移动canvas里的第几个对象 def moverectangle(event): if event.keysym == "Up": canvas.move(3,0,-5) elif event.keysym=="Down": canvas.move(3,0,5) elif event.keysym=="Left": canvas.move(3,-5,0) elif event.keysym=="Right": canvas.move(3,5,0) else: canvas.move(3,5,5) canvas.create_rectangle(200,200,220,220,fill="red") #让tkinter监视KeyPress事件,当该事件发生时调用moverectangle函数 #bind_all第2个参数是回调函数,不能接收参数传递,所以在函数内部建立回调函数 canvas.bind_all("<KeyPress-Up>",moverectangle) canvas.bind_all("<KeyPress-Down>", moverectangle) canvas.bind_all("<KeyPress-Left>",moverectangle) canvas.bind_all("<KeyPress-Right>", moverectangle) canvas.bind_all("<KeyPress-Return>",moverectangle) tk.mainloop()main()
实例2:利用Tkinter库创建聊天界面
# -*- coding: utf-8 -*-from Tkinter import *from time import *def main(): def sendMsg(): strtime="我:"+strftime("%Y-%m-%d %H:%M:%S",localtime())+"\n" txtMsgList.insert(END,strtime,'greencolor') #0.0是0行0列到END,表示全部,END表示插入末端 txtMsgList.insert(END,txtMsg.get('0.0',END)) txtMsg.delete('0.0',END) def cancelMsg(): txtMsg.delete('0.0',END) def sendMsgEvent(event): if event.keysym=="Return": sendMsg() tk=Tk() tk.title("python聊天室") # 创建frame容器 frameLT = Frame(width=500, height=320) frameLC = Frame(width=500, height=150,bg="red") frameLB = Frame(width=500, height=30) frameRT = Frame(width=200, height=500) #创建控件 txtMsgList=Text(frameLT) #配置标签tag的属性,第一个参数为tag名字,第2个参数为前景色,背景色为默认白色 txtMsgList.tag_config("greencolor", foreground='#008C00') txtMsg=Text(frameLC) txtMsg.bind_all("<KeyPress-Return>",sendMsgEvent) btnSend=Button(frameLB,text="send",width=8,command=sendMsg) btnCancel=Button(frameLB,text="cancel",width=8,command=cancelMsg) myImage=PhotoImage(file="python.gif") label=Label(frameRT,image=myImage) #窗体布局 frameLT.grid(row=0, column=0, columnspan=2,padx=1,pady=5) frameLC.grid(row=1, column=0, columnspan=2) frameLB.grid(row=2, column=0, columnspan=2) frameRT.grid(row=0, column=2, rowspan=3,padx=5,pady=4) # 固定大小 frameLT.grid_propagate(0) frameLC.grid_propagate(0) frameLB.grid_propagate(0) frameRT.grid_propagate(0) #控件布局 btnSend.grid(row=2, column=0) btnCancel.grid(row=2, column=1) label.grid() txtMsgList.grid() txtMsg.grid() #主事件循环 tk.mainloop()main()
阅读全文
0 0
- python Tkinter库详解
- python Tkinter 详解
- Python-Tkinter的Entry详解
- Python 图形界面Tkinter Label 详解
- python的GUI,tkinter详解
- Python Tkinter Grid布局管理器详解
- Python Tkinter Grid布局管理器详解
- Python Tkinter Grid布局管理器详解
- Python Tkinter Hello,Tkinter
- python tkinter
- python:Tkinter
- Python Tkinter
- ubuntu下安装python的Tkinter库
- kali Linux 下安装 python tkinter 库
- Python Tkinter的HelloWorld
- Python GUI (Tkinter)
- Python + Tkinter画树
- python Tkinter例子
- 【Java】Java并发学习笔记
- POJ
- zepto框架学习日记
- Kattis-Chess Tournament(有向图判环)
- Magic Coupon (25)
- python Tkinter库详解
- css样式
- 值得推荐的C/C++框架和库 (真的很强大)
- Cookie
- 线性表之循环列表
- 17icpc北京网络赛G题(gcd意义)
- 取数组的最后一个元素
- lvs DR模式
- 【MyBatis】MyBatis入门