今回の内容
PythonのGUIツールではtkinterとwxPythonとkivy,PyQtがあるようですが、今回やそんな中でtkinterとwxPythonについて説明します。tkinterとは
これは結構使っている人は多いようです。インストールが簡単で、基本的なGUIをつくるには簡単にできすので、初心者にはおすすめしたいものです。
wxPythonとは?
wxPythonとは数多くの言語で使用されてきた、長い歴史のもつものです。Python3からサポートされるようになりました。また、そのwxの中にもいろいろなライブラリが含まれていて、
すごいものもつくりやすくなっています。
tkinterを使って思ったこと
初めてのPythonでのGUIをつくるために使用したのがtkinterでした。一応、ソフトを作りための最低限の機能が含まれています。実際にソフトを作っている人もいるようでした。
メニューバー、テキストボックス、ボタン、リストボックスなどの、機能があり、ツールバー、ステータスバーなどのウィジェットがありませんでした。
そのため、だんだん限界を感じてきました。さらに、見た目が古臭いのです。
wxPythonを使って思ったこと
wxPythonでは、tkinterではなかったステータスバー、ツールバーなどのウィジェットがあり、より高機能なソフトを作ることができます。tkinterで限界を感じたのであれば、こちらにすべきでしょう。
ただし、不具合、バグが多く見られました。そんなに影響の大きいバグではないのでいいですが...
コードの比較
self classを使わずにtkinter
import tkinter
import random
def onButton(event=None):
txt = text.get()
text.delete(0,tkinter.END)
txt = ''.join(random.sample(txt, len(txt)))
text.insert(0,txt)
root = tkinter.Tk()
root.geometry("400x200")
root.title("文字をランダムにする謎ツール")
text = tkinter.Entry(root,width=40)
text.place(x=10,y=10)
button = tkinter.Button(root,text="ランダムに",command=onButton)
button.place(x=10,y=40)
root.mainloop()
wxPython
import wx
import random
def onButton(event=None):
txt = text.GetValue()
txt = ''.join(random.sample(txt, len(txt)))
text.SetValue(txt)
app = wx.App(False)
frame = wx.Frame(None,-1,"文字をランダムにする謎のツール",size=(400,200))
panel = wx.Panel(frame,-1)
text = wx.TextCtrl(panel,-1,"",size=(300,-1),pos=(10,10))
button = wx.Button(panel,-1,"ランダムに",pos=(10,40))
button.Bind(wx.EVT_BUTTON,onButton)
frame.Show(True)
app.MainLoop()
たいして量は変わりませんでした。
ただし、コードが似ているとはいえません。tkinterを学んだら、wxPythonのかきかたを忘れますし、wxPythonを学んだら、tkinterのかきかたを忘れます。




0 件のコメント:
コメントを投稿