您的位置:首页 > 编程语言 > Python开发

使用python的Tkinter构建应用程序

2013-04-01 13:07 423 查看
  这一节记录的是我在使用python tkinter时的一些笔记。

  背景:现在需要构建一个简易的聊天工具,说简易是因为确实只需要很简单的几个界面,包括一个登陆界面、一个好友列表和单击好友时弹出好友对话框可以交谈,我们这里只需要创建简单的界面(不包括业务),所以选择用tkinter这个模块来实现。

  要点一、神马是tkinter?

  Tkinter模块("Tk 接口")是Python的标准Tk GUI工具包的接口.Tk和Tkinter可以在大多数的Unix平台下使用,同样可以应用在Windows和Macintosh系统里.,Tk8.0的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中.(摘自百度百科)想要查看你的Tkinter版本,只需要在python命令行模式下输入print Tkinter.TkVersion即可,笔者的版本是8.5。

  要点二、安装

  一般情况下,安装python时,自带安装了Tkinter,并且与python的版本相对应,例如python2.7.3对应的应该是8.5版本,其余的我倒不是很熟悉。但有些预安装的python可能没有带上tkinter,例如我在虚拟机Fedora17上的python并没有自带tkinter,这时候解决办法是使用yum install tkinter命令即可。

  要点三、登陆框

  

View Code

# coding=UTF-8
import Tkinter
from Tkinter import *
from myDialog import *
from datetime import *

class Chat(Dialog):
def __init__(self,master,title,obj,me):
self.obj = obj
self.me = me
t = u"与 "+obj['name']+u" 聊天中"
Dialog.__init__(self,master,t)

def apply(self):
dt= datetime.now()
timestr = u'%s于%s说: \n' % (self.me['name'],dt.strftime('%c'))
msg = self.input.get(1.0,END)
if msg.strip() == "":
return False
self.insertmessage(timestr+msg)
self.input.delete(1.0,END)

self.text.yview(MOVETO, 1.0)
pass

def body(self,master):
self.geometry("680x480")
self.resizable(False,False)

frame = Frame(master)
Label(frame,text="聊天记录:").pack(padx=5,pady=5)
frame.grid(row=0,sticky=W)

frame = Frame(master)
frame.grid(row=1)
self.text_scrollbar = Scrollbar(frame, orient=VERTICAL)
self.text = Text(frame,yscrollcommand= self.text_scrollbar.set,height=14,bg="white")
self.text_scrollbar.config(command=self.text.yview)
self.text_scrollbar.pack(side=RIGHT, fill=Y)
self.text.bind("<KeyPress>", lambda e : "break")
self.text.pack()

frame = Frame(master)
Label(frame,text="输入聊天信息:").pack(padx=5,pady=5)
frame.grid(row=2,sticky=W)

frame = Frame(master)
frame.grid(row=3)
scrollbar = Scrollbar(frame, orient=VERTICAL)
self.input = Text(frame,yscrollcommand=scrollbar.set,height=8,bg="white")
scrollbar.config(command=self.input.yview)
scrollbar.pack(side=RIGHT,fill=Y)
self.input.pack(fill=Y)

#插入聊天信息(显示在聊天框)
def insertmessage(self,msg):
self.text.insert(END,msg+"\n")
pass

#设置对话框标题
def setTitle(self,title):
self.title(title)
pass

def ok(self,event=None):
self.apply()
pass

def cancel(self,event=None):
self.obj["open"] = "no"
print "set open %s to no"%self.obj['name']
Dialog.cancel(self,event)

if __name__ == "__main__":
print "开放的"


  效果如图:

  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: