今回の内容
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 件のコメント:
コメントを投稿