PythonのwxPythonとtkinterどっちがいいの?

2021年6月26日土曜日

Python tkinter wxPython

t f B! P L

今回の内容

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のかきかたを忘れます。

すっきりしないけど結論

初心者はtkinter、限界を感じたらwxPython。

このブログを検索

要望について

ブログのレイアウトやテーマについての提案をいただきました。現在qooqテーマを適応中です。 語尾を自動でつけるプログラムを作りたいという要望をいただきました。是非紹介したいですがどの言語でどのようなプログラムかなど、お問い合わせフォームで詳しく教えてください!

最近の出来事

最近の出来事
寿司打お勧め75位♪(練習モードだけど)

アンケート

Welcome!

「プログラミング独学ブログ」へようこそ。 Yakinyといいます。幅広い範囲で投稿していますので、ぜひ過去の記事も見てみてください!!コメントも大歓迎です!更新がとまってしまって申し訳ございません

お問い合わせ

名前

メール *

メッセージ *

QooQ