Python之Tkinter:动作
2013-02-27 11:08
211 查看
Python之Tkinter:动作
进行界面编程,首先少不了以下几个重要部分:
l
窗体
l
控件
l
动作
窗体是容器,各式各样的控件放置在容器中,每种控件在触发之后都会执行一定的指令,即完成它的动作。
怎样将控件绑定到一个命令上?一般来说在创建控件的时候,使用参数command来指定要执行的动作,这个动作可以使以下几类情况:
l
普通函数
l
同属于一个类的其他成员函数
l
内置函数
l
lamda函数
怎样创建窗口?一般来说有这么几种方法,一种是过程式的,使用Tk()。还有一种是面向对象式的,即:继承自Frame. Tk()返回的对象是根容器,Frame产生的对象可以放置在Tk()返回的对象中。
每个窗口在创建之后,使用pack对自己进行布局,并使自己可见。布局的方式可以使用expand、fill、side等。
控件对事件的绑定调用函数bind,第一个参数为表示事件的字符串,第二个为要执行的动作,动作的来源前面已经叙述。
下面为一些例子:
创建一个Button,点击后执行的动作为退出。
将一个类的实例指定为动作,默认时调用该类的__call__方法。
调用同一个类内部的成员函数
将Frame对象作为参数使用
响应按键事件,以及动态配置控件的方式
本文出自 “相信并热爱着” 博客,请务必保留此出处/article/4313829.html
进行界面编程,首先少不了以下几个重要部分:
l
窗体
l
控件
l
动作
窗体是容器,各式各样的控件放置在容器中,每种控件在触发之后都会执行一定的指令,即完成它的动作。
怎样将控件绑定到一个命令上?一般来说在创建控件的时候,使用参数command来指定要执行的动作,这个动作可以使以下几类情况:
l
普通函数
l
同属于一个类的其他成员函数
l
内置函数
l
lamda函数
怎样创建窗口?一般来说有这么几种方法,一种是过程式的,使用Tk()。还有一种是面向对象式的,即:继承自Frame. Tk()返回的对象是根容器,Frame产生的对象可以放置在Tk()返回的对象中。
每个窗口在创建之后,使用pack对自己进行布局,并使自己可见。布局的方式可以使用expand、fill、side等。
控件对事件的绑定调用函数bind,第一个参数为表示事件的字符串,第二个为要执行的动作,动作的来源前面已经叙述。
下面为一些例子:
#!/usr/bin/python from Tkinter import * def quit(): print "I have to leave now ..." import sys sys.exit() b = Button(None,text="quit",bg="red",command=quit) b.pack() b.mainloop()
创建一个Button,点击后执行的动作为退出。
#!/usr/bin/python from Tkinter import * class ClassCall(): def __init__(self): self.msg="call from a class.\n" def __call__(self): print self.msg import sys sys.exit() widget = Button(None,text="test",command=ClassCall()) widget.pack() widget.mainloop()
将一个类的实例指定为动作,默认时调用该类的__call__方法。
#!/usr/bin/python from Tkinter import * class InnerClass(): def __init__(self): self.b = Button(None,text="test",command = self.call) self.b.pack() def call(self): print "I am leaving now..." import sys sys.exit() InnerClass() mainloop()
调用同一个类内部的成员函数
#!/usr/bin/python from Tkinter import * class GuiDesign(): def __init__(self,parent=None): self.top = Frame(parent) self.top.pack() self.data = 0 self.layout() def layout(self): Button(self.top,text="exit",command=self.top.quit).pack(side = LEFT) Button(self.top,text="hi",command=self.hi).pack(side = RIGHT) def hi(self): self.data += 1 print "hi:%d" % self.data frm = Frame() frm.pack() #easy to make mistake here. Label(frm,text="hello").pack(side=TOP) GuiDesign(frm).top.mainloop()
将Frame对象作为参数使用
#!/usr/bin/python from Tkinter import * def showPosEvent(event): print 'Widget=%s X=%s Y=%s' % (event.widget, event.x, event.y) print 'Got key perss:',event.char tkroot = Tk() labelfont = ('courier', 20, 'bold') widget = Label(tkroot, text='Hello bind world') widget.config(bg='red', font=labelfont) widget.config(height=5, width=20) widget.pack(expand=YES, fill=BOTH) widget.bind('<KeyPress>', showPosEvent) widget.focus() tkroot.title('Click Me') tkroot.mainloop()
响应按键事件,以及动态配置控件的方式
本文出自 “相信并热爱着” 博客,请务必保留此出处/article/4313829.html
相关文章推荐
- Python之Tkinter:动作
- Python之Tkinter:动作
- python TKinter获取文本框内容
- python的tkinter可以更换红色的图标“Tk”
- Python GUI (Tkinter)
- python3+BeautifulSoup+tkinter 爬虫 获取学校成绩
- Python Tkinter PanedWindow 控件
- Python Tkinter 简单登录界面
- Tkinter 8.5 参考手册: a GUI for Python (五)3
- Python: tkinter窗口屏幕居中,设置窗口最大,最小尺寸
- Python3 Tkinter基础 Button bg 设置按钮的背景颜色
- Python3 Tkinter基础 Radiobutton 设置indicatoron=False 长条形 pack(fill=X) 充满一行
- python开发_tkinter_复选菜单
- Python: tkinter窗口屏幕居中,设置窗口最大,最小尺寸
- Python 窗体(tkinter)树状数据(Treeview)
- Python3 Tkinter基础 Entry validate='key ' isdigit 创建一个只能输入数字的输入框
- python开发_tkinter_菜单的不同选项
- python—Tkinter GUI编程
- win7/64+python3.4+pyinstall3+tkinter+smtp=图形界面群发邮件客户端
- python Tkinter Text的简单用法