Tkinter之一(TCL/Tk在Python上的移植)

What is Tkinter?

 TkinterPythonGUI widget。它是基於Tk工具包的,而Tk最初是爲了工具命令語言(Tool Command Language, TCL)設計的。由於Tk的流行,它被移植到Perl(Perl/Tk)Python(Tkinter)

A minimal application

#!/usr/bin/python
from Tkinter import 
*

class Application(Frame):                           
         def __init__(self, master 
= None):
Frame.__init__(self, master)
self.grid()
self.createWidget()
          
          def createWidgets(self):
                self.quitButton 
= Button(self, text = ‘Quit’, command=self.quit)
                self.quitButton.grid()
app 
= Application()
app.master.title(‘Sample application’)
app.mainloop()

 

注意:Application類必須從Frame類繼承而來,其__init__函數宜先調用其父類的__init__。其中grid()函數用於將Widget顯示出來,感覺應該是跟組件的pack()類似。

另外一種形式的Hello, world

#title: HelloWorld.py
from Tkinter import 
*

root 
= Tk()
label 
= Label(text = “hello world”);
label.pack()

root.mainloop()

Layout management

儘管在Tkinter中有三種geometry managers,但是本文將使用.grid()。這種Layout管理器將所有的widget都看成是一個由列跟行組成的表格。通常包含如下術語:

 

  • 單元cell
  • 寬width
  • 高 height
  • extra space
  • 合併單元格spanning

創建了一個widget後,只有將其向geometry manager註冊後,該widget纔會顯示出來。

thing = Constructor(master, …)
thing.grid(…)

用類封裝的Hello, world例子。

#file : hello2.py

from Tkinter import 
*

class App:
         def __init__(self, master):
            frame 
= Frame(master)
            frame.pack()

            self.button 
= Button(frame, text = ‘Quit’, fg =’red’, command = frame.quit)
            self.button.pack(side 
= LEFT)
         
            self.hi_there 
= Button(frame, text = ‘Hello’, command = self.say_hi)
            self.hi_there.pack()

        def say_hi(self):
            print ‘hi there, everyone
!

root 
= Tk()
app 
= App(root)
root.mainloop()

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章