TkinterGUIライブラリを使用してPythonでデスクトップアプリの作成を開始する

TkinterGUIライブラリを使用してPythonでデスクトップアプリの作成を開始する

Tkinterはグラフィカルユーザーインターフェイス(GUI)ツールキットであり、デスクトップアプリの作成におけるPythonの力を探求したい場合に試してみる必要があります。





ここでは、TkinterGUIモジュールの基本を見ていきます。





ps4アカウントを削除する方法

Tkinterのセットアップ

通常、インストールする必要はありません tkinter Python 3以降の新しいバージョンのPythonをインストールした場合は、別途インストールしてください。ただし、ライブラリは古いPythonバージョンでは機能しない場合があります。これらのOSには通常、デフォルトで古いバージョンのPythonが付属しているため、これはMacおよびLinuxユーザーに共通の問題です。





一般的に、 tkinter モジュール、公式から最新の互換性のあるバージョンのPythonをPCにダウンロードしてインストールするようにしてください python.org Webサイト。

Macを使用している場合は、代わりに、ActiveTclの最新バージョンをダウンロードできます。 tkinter からのコンパイラ ActiveState



Tkinterの使い方

Tkinterはその組み込みに依存します TK クラス。そして、GUI内のすべてのイベントを メインループ 。したがって、 メインループ ラッパーはあなたを作ります tkinter コード実行可能ファイル。

はじめに tkinter





from tkinter import Tk
Tk().mainloop()

上記のコードを実行すると、空がスピンアップします tkinter フレーム。

ただし、Tkinterのカスタマイズ機能は、組み込みのウ​​ィジェットにあります。





これらのウィジェットを使用するには、からそれらをインポートできます tkinter 交換することにより tkinterからインポートTk と:

from tkinter import *
t = Tk()
t.mainloop()

でウィンドウサイズを調整することもできます ジオメトリ 関数を使用してから、を使用してタイトルを指定します 題名 のウィジェット tkinter

t = Tk()
t.geometry('600x600')
t.title('Tk Tutorial')
t.mainloop()

Tkinterラベルウィジェット

Tkinterを使用すると、GUIを使用してプレーンテキストを直接GUIに書き込むことができます。 ラベル ウィジェット:

t = Tk()
Label(t, text = 'MUO Tkinter tutorial').grid()
t.mainloop()

NS グリッド() ただし、この方法は パック() 方法。ウィジェットをGUIに固定し、ウィジェットを表示します。

のフォントを指定することもできます ラベル 文章:

t = Tk()
Label(t, text = 'MUO Tkinter tutorial', font=(60)).grid()
t.mainloop()

Tkinterでのボタンウィジェットの操作

ボタンは、で最も使用されているウィジェットの一部です tkinter 。また、さまざまな組み込みのボタンウィジェットを使用して、これらのクリック可能なボタンをGUIに追加できます。

を使用してGUIにプライマリボタンを追加する方法は次のとおりです。 ボタン ウィジェット:

t = Tk()
Button(t, text = 'Clickable', bg = 'black', fg = 'white').grid()
t.mainloop()

NS bgfg キーワードは、ボタンの背景色とボタン内のテキストの色をそれぞれ説明します。

ボタンの寸法を調整するには、 身長 パラメーター:

t = Tk()
Button(t, text = 'Clickable', bg = 'black', fg = 'white', , ).grid()
t.mainloop()

そのための出力は次のとおりです。

iphone 12 vs iphone 12 pro max

また、ボタンをより視覚的に魅力的にしたい場合は、 安心 キーワードを入力し、境界線の幅を調整します。

t = Tk()
Button(t, text='Clickable', bg='blue', fg='white',
height=2, width=10, relief=RAISED, borderwidth=6).grid()
t.mainloop()

そしてそれはこのように見えます:

交換 上げられたフラット それがどのように行われるかを確認します。

ボタンはいくつでも追加できます。ただし、コンテンツの重複を避けるように注意してください。

重複を避けるために、各ボタンの行と列の位置を指定できます。

t = Tk()
Button(t, text=1, bg='black', fg='white').grid(row=1, column=1)
Button(t, text=2, bg='black', fg='white').grid(row=2, column=1)
Button(t, text=3, bg='black', fg='white').grid(row=3, column=1)
Button(t, text=4, bg='black', fg='white').grid(row=4, column=1)
t.mainloop()

オプション 指図 ただし、キーワードはイベントをに追加します ボタン ウィジェット。本質的には、ボタンをクリックしたときに特定のイベントを処理するオプションの関数を固定します。

たとえば、以下のコードは、ボタンをクリックすると、各ボタンの値に6を掛けます。そして、それは事前定義された関数に基づいています:

def buttonpress(r):
r = 6*r
Label(t, text=r, font=(60)).grid(row=5, column=2)
t = Tk()
Button(t, text = 1, bg = 'black', fg = 'white', width = 10, height = 2,
command = lambda:buttonpress(1)).grid(row=1, column = 1, pady = 6)
Button(t, text = 2, bg = 'black', fg = 'white', width = 10,
command = lambda:buttonpress(2)).grid(row = 2, column = 1, pady = 6)
Button(t, text = 3, bg = 'black', fg = 'white', width = 10,
command = lambda:buttonpress(3)).grid(row = 3, column = 1, pady = 6)
Button(t, text = 4, bg = 'black', fg = 'white', width = 10,
command = lambda:buttonpress(4)).grid(row = 4, column = 1, pady = 6)
t.mainloop()

上記のコードでは、 ボタンを押す 乗算イベントを処理します。 NS ボタン 次に、ウィジェットは匿名を使用してそのイベントハンドラーを指します ラムダ 関数。

そして、あなたが心配しているなら パッド キーワードでは、行全体の各ボタンを明確に区切ります。これを padx 列全体でボタンを区切ります。また、両方のキーワードを同時に使用して、必要に応じて両方の軸でボタンを分離できます。

とはいえ、前のコードで行ったように、すべてのボタンのホイールを再発明したくはありません。これにより、実行時間が遅くなり、さらにコードが読みにくくなり、絞り込むことができなくなります。

でも君ならできる forループを使用する この繰り返しを避けるために。

したがって、上記のコードの短くて優れたバージョンを次に示します。

def buttonpress(r):
r = 6*r
Label(t, text = r, font = (60)).grid(row = 5, column = 2)
t = Tk()
a = [1, 4, 6, 7]
for i in a:
j = lambda y = i:buttonpress(y)
Button(t, text = i, bg = 'black', fg = 'white', width = 10, height = 2,
command=j).grid(row = i, column = 1, pady = 6)
t.mainloop()

の力をさらに探求しましょう にとって GUIにメニューボタンを追加するためのループ:

from tkinter import *
t = Tk()
buttons = ['Files', 'Dashboard', 'Menu', 'Settings', 'Help']
m = 0
for i in range(len(buttons)):
# Get each text in the buttons array using a list index as m increases.
# Then let the column increase by 1 through the length of the array:

Menubutton(t, text=buttons[m], bg='blue', fg='white').grid(row=5, column=i)
m += 1
t.mainloop()

GUIにチェックボタンを追加するのも非常に簡単です。

t = Tk()
Checkbutton(t, text = 'Select option').grid()
t.mainloop()

を使用して、そのチェックボタンを自由に乗算してください にとって 以前に行ったように、ループします。

Tkinterのメニューウィジェットを使用してドロップダウンメニューを作成する方法

NS メニュー ウィジェットを使用すると、クリック可能なドロップダウンメニューをデザインできます tkinter

先に述べたように、 tkinter 多くのウィジェットオプションを提供します。また、ドロップダウンメニューを設計するときにそれらのいくつかを使用します。

ドロップダウンの作成中に表示される一般的なウィジェットオプションのいくつかを次に示します。

  • add_cascade: メニューラベルを表示し、それが属する場所に貼り付けます。
  • add_separator: サブメニューの境界を定め、それらを上部サブメニューと下部サブメニューにグループ化します。
  • add_command: ここで、サブメニューに名前を付けます。最終的には、イベントハンドラーを指定できるコマンド引数を受け入れます。

次の3つのオプションを使用するドロップダウンの例を次に示します。

from tkinter import *
t = Tk()
fileOptions = ['New', 'open', 'Save', 'Save as']
fileOptionsAfterseparator = ['Import', 'Export', 'Exit']
viewOptions = ['Transform', 'Edit', 'Create']
menuBar = Menu(t)
file = Menu(menuBar, tearoff=0)
for i in fileOptions:
file.add_command(label=i, command=None)
file.add_separator()
for i in fileOptionsAfterseparator:
file.add_command(label=i, command=None)
menuBar.add_cascade(label='File', menu=file)
View = Menu(menuBar, tearoff=0)
for i in viewOptions:
View.add_command(label=i, command=None)
menuBar.add_cascade(label='View', menu=View)
t.config(menu=menuBar)
t.mainloop()

それがどのように見えるかを見てください:

Tkinterオプションメニュー

NS オプションメニュー 、とは異なり メニュー ドロップダウンは、そのラベルを選択したオプションに切り替えます。

オプションメニューのデフォルトのラベル値を指定できますが、デフォルトではラベルがありません。

関連している: 初心者に適したPythonプロジェクトのアイデア

でオプションメニューを作成する方法は次のとおりです tkinter

t = Tk()
Omenu = StringVar() #set the variable type of the options
Omenu.set('MUO') #specify a default value for the menu icon
OptionMenu(t, Omenu, 'MUO', 'Amazon', 'Tutorial').grid()
t.mainloop()

Tkinterで再利用可能なデスクトップアプリを構築する

Tkinterは、インタラクティブなGUIデスクトップアプリの作成に役立つ一連の機能を提供します。他のPythonGUIモジュールのように柔軟な美化機能はあまりないかもしれませんが、それでも探索する価値のある便利なツールです。ここでの例は基本的な概念の一部のみを示していますが、 tkinter 試してみることができるより高度な機能を提供します。

電話をラップトップに接続する方法

そうは言っても、GUIデスクトップ計算機を作成したり、ミニテキストエディターを作成したり、在庫を管理するためのGUIデスクトップアプリを作成したりすることもできます。翼を広げてデスクトップGUI専攻になりたい場合は、Pythonの他のGUIモジュールをチェックすることもできます。

共有 共有 つぶやき Eメール GUI?グラフィックユーザーインターフェイスとは何ですか?

GUIを使用していますか?あなたが毎日それらを使用するので、あなたが持っている可能性があります。

次を読む
関連トピック
  • プログラミング
  • Python
著者について イディソウオミソラ(94件の記事が公開されました)

Idowuは、スマートな技術と生産性に情熱を注いでいます。暇なときは、コーディングで遊んだり、退屈したときにチェス盤に切り替えたりしますが、たまに日常から離れることも大好きです。人々に現代の技術の道を示すことへの彼の情熱は、彼がもっと書くように動機づけます。

IdowuOmisolaのその他の作品

ニュースレターを購読する

ニュースレターに参加して、技術的なヒント、レビュー、無料の電子書籍、限定セールを入手してください。

購読するにはここをクリックしてください