Stage 5--Python GUIプログラミングTKinter
Pythonグラフィックスライブラリの概要
pythonは複数のグラフィック開発インタフェースのライブラリを提供し、いくつかの一般的なPython GUIライブラリは以下の通りである. Tkinter:Tkinterモジュール(「Tkインタフェース」)は、Pythonの標準Tk GUIキットのインタフェースである.TkとTkinterは多くのUnixプラットフォームで使用でき、WindowsやMacintoshシステムにも応用できる.Tk8.0の後続バージョンでは、ローカルウィンドウスタイルを実現し、ほとんどのプラットフォームで良好に動作します. wxPython:wxPythonはオープンソースソフトウェアであり、Python言語の優れたGUIグラフィックライブラリであり、Pythonプログラマーが完全で機能的なGUIユーザーインタフェースを作成するのに便利である. Jython:JythonプログラムはJavaとシームレスに統合できます.いくつかの標準モジュールを除いて、JythonはJavaのモジュールを使用します.Jythonはほぼ標準のPythonの中でC言語に依存しないすべてのモジュールを持っている.たとえば、Jythonのユーザーインタフェースでは、Swing、AWT、またはSWTが使用されます.Jythonは、Javaバイトコードに動的または静的にコンパイルすることができる.
Tkinterは最も簡単なウィンドウを実現します
最初のステップはtkinterパッケージをインポートし、2番目のステップはフォームを作成し、3番目のループ(プログラムを終了しない)は、より複雑なインタフェースを書くにはTkinterのドキュメントを参照する必要があります.http://effbot.org/tkinterbook/
Tkinterが実現した小さなDemo
pythonは複数のグラフィック開発インタフェースのライブラリを提供し、いくつかの一般的なPython GUIライブラリは以下の通りである.
Tkinterは最も簡単なウィンドウを実現します
import tkinter
top = tkinter.Tk()
top.mainloop()
最初のステップはtkinterパッケージをインポートし、2番目のステップはフォームを作成し、3番目のループ(プログラムを終了しない)は、より複雑なインタフェースを書くにはTkinterのドキュメントを参照する必要があります.http://effbot.org/tkinterbook/
Tkinterが実現した小さなDemo
from tkinter import *
class ControllPanel(Frame):
def __init__(self, master):
Frame.__init__(self, master, width=360, height=260)
self.pack()
class UrlArea(Frame):
def __init__(self, master):
Frame.__init__(self, master)
self.pack(pady=20)
self.label = Label(self, text=" :")
self.label.pack(side=LEFT)
self.url = Entry(self, width=40)
self.url.pack(side=RIGHT)
class RegixArea(Frame):
def __init__(self, master):
Frame.__init__(self, master)
self.pack()
self.label = Label(self, text=" :")
self.label.pack(side=LEFT)
self.regix = Entry(self, width=40)
self.regix.pack(side=RIGHT)
class ButtonArea(Frame):
def __init__(self, master):
Frame.__init__(self, master)
self.pack(pady=40)
self.verify_button = Button(self, text=" ", command=self.verifyRegix)
self.verify_button.pack(padx=50, side=LEFT)
self.start_button = Button(self, text=" ", command=self.startRun)
self.start_button.pack(padx=50, side=RIGHT)
def verifyRegix(self):
print("verify......")
def startRun(self):
print("run.......")
class StatusBar(Frame):
def __init__(self, master):
Frame.__init__(self, master)
self.pack(side=BOTTOM, fill=X)
self.label = Label(self, bd=1, relief=SUNKEN, anchor=W)
self.label.pack(fill=X)
def set(self, format, *args):
self.label.config(text=format % args)
self.label.update_idletasks()
def clear(self):
self.label.config(text="")
self.label.update_idletasks()
root = Tk()
root.title(" ")
#
scnWidth, scnHeight = root.maxsize()
tmpcnf = '%dx%d+%d+%d'%(308, 101, (scnWidth-308)/2, (scnHeight-101)/2)
root.geometry(tmpcnf)
root.maxsize(600, 300)
root.minsize(360, 220)
#root.resizable(False, False) #
controllPanel = ControllPanel(root)
UrlArea(controllPanel)
RegixArea(controllPanel)
ButtonArea(controllPanel)
status_bar = StatusBar(root)
status_bar.set(" ……")
root.mainloop()
root.destroy()