Python之Tkinter:動作
Python之Tkinter:動作
進行介面程式設計,首先少不了以下幾個重要部分:
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()
響應按鍵事件,以及動態配置控制元件的方式
©著作權歸作者所有:來自51CTO部落格作者hipercomer的原創作品,如需轉載,請註明出處,否則將追究法律責任
Pythonpython tkinter actioPython
3
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/3209/viewspace-2820333/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- python-GUI之tkinter的學習PythonGUI
- Python 程式設計之Tkinter的使用01Python程式設計
- 【記錄】python3 使用tkinter製作tkinterUI編輯器 《十一》PythonUI
- Python Tkinter 簡單使用Python
- python tkinter學習(1)Python
- python-Tkinter整理總結Python
- python tkinter如何繫結事件?Python事件
- Python 生命遊戲(tkinter版)Python遊戲
- Python的Tkinter庫總結(1)Python
- Python Tkinter元件有哪些?Python基礎入門!Python元件
- Python tkinter矩形縮放測試程式Python
- python tkinter如何獲取label內容?Python
- Python如何使用tkinter編寫GUI程式PythonGUI
- Tkinter (17) 滾動條部件 Scrollbar
- Python GUI程式設計:tkinter關於ttkbootstrapPythonGUI程式設計boot
- Python tkinter 實現 指令碼工具 GUI模版Python指令碼GUI
- 002.02 Tkinter 圖形介面之文字範例
- [開源&分享]一個用於微控制器IAP自動傳送的串列埠助手,上位機,使用Python+tkinter製作串列埠Python
- Python|Python互動之mongoDB互動詳解PythonMongoDB
- Python GUI之tkinter視窗視窗教程大集合(看這篇就夠了)PythonGUI
- [Python GUI]Python內建圖形介面tkinter--入門1PythonGUI
- tkinter
- 23.圖形互動tkinter--menu
- Tkinter (36) 滾動條部件 ttk.Scrollbar
- tkinter學習系列(四)之Button 控制元件控制元件
- python自動製作gif並新增文字Python
- Python-模擬滑鼠鍵盤動作Python
- 教你python tkinter實現簡單計算器功能Python
- Python tkinter是什麼?GUI程式設計有哪些?PythonGUI程式設計
- python3 tkinter報錯:_tkinter.TclError: cannot use geometry manager pack inside . which already has slaves managed by gridPythonErrorIDE
- tkinter 列表框內容上下移動位置
- python3安裝編譯_tkinter模組丟失Python編譯
- Python 內建介面開發框架 Tkinter入門篇 乙Python框架
- Python 內建介面開發框架 Tkinter入門篇 甲Python框架
- Python 內建介面開發框架 Tkinter入門篇 丁Python框架
- python tkinter 視窗出現未響應處理方式Python
- 骷髏坑人小技巧1[python]:坑爹遊戲[tkinter]Python遊戲
- python之 自動補全 tabPython