「5分でPythonとTkinterを使用してシンプルなユーザーフォームを作成する-初心者ガイド」

5分でPythonとTkinterを使用してシンプルなユーザーフォームを作成する-初心者ガイド

今日では、すべてのビジネスが「デジタル化」することがトレンドになっています。小規模なビジネスでも大規模なビジネスでも、情報を手動で収集するよりもアプリケーションを使用する方が便利です。また、プロフェッショナルな印象を与えます。医師の店舗であるか、食料品店であるかに関係なく、お客様が何度も訪れることを期待しています。

Thanks for the Photo by Faizur Rehman on Unsplash

このチュートリアルでは、Pythonと人気のあるGUIツールキットであるTkinterを使用して、非常にシンプルなユーザーフォームを作成する方法を紹介します。このブログの最後までに、さまざまなアプリケーション用の登録フォームを開発するためのスキルを身につけることができます。

私は機械学習のプロジェクトでさまざまなGUIを作成するのが好きです。エンドユーザーとコミュニケーションするための表現の自由を与えてくれます。自分の機械学習プロジェクトのためにGUIを自分で作成することは、誰よりも自分自身の物語を語っているような気がします。

PythonでGUIを構築するために使用できるライブラリは多数あります。その中でも有名なものには、PyQt5、Kivy、PySimpleGUI、Tkinterなどがあります。私は初心者にはTkinterが最適だと考え、シンプルで基本的なGUIライブラリとして使用しています。ただし、GUIのスタイリングに関してはいくつかの制限がありますので、短期プロジェクトには使用しています。

私もWebアプリのファンですが、アプリを公開したくない場合はWebサーバーが必要です。Streamlitを使用してWebアプリを作成するチュートリアルはこちらで見つけることができます。

それに代わり、Tkinterを使用してGUIを作成し、実行可能ファイルに変換してファイルを共有するだけでエンドユーザーに配布するのが簡単だと思います。時間とコストの面でも迅速かつ経済的です。

事前準備:

システムにPythonとTkinterがインストールされている必要があります。Tkinterがインストールされていない場合は、Anacondaプロンプトで次のコマンドを使用してインストールできます:

pip install tk

ステップ1:必要なライブラリのインポート

いつものように、プロジェクトに必要なすべてのライブラリをインポートする必要があります。このシンプルなプロジェクトでは、tkinterとopenpyxlパッケージが必要です。必要に応じてコードを拡張することができます。

import openpyxlfrom tkinter import *from tkinter import messagebox

ステップ2:tkinterウィンドウの初期化

ここでは、rootという名前を付けましたが、任意の名前を付けることができます。‘root.title()’内で必要に応じてタイトルを変更することができます。‘root.geometry()’はTkinterウィンドウのサイズを定義します。最初のパートは幅を示し、2番目のパートは高さを示します。必要に応じて変更することができます。ここでは、正方形のウィンドウを定義しています。

また、tkinterのアイコンも変更することができます。ただし、このブログではその内容については説明しません。

# Create the main tkinter windowroot = Tk()root.title("登録フォーム")root.geometry('300x300')

ステップ3:ラベルとエントリーフィールドの作成

First Name、Last Name、Email、およびMobile Numberのフィールドを作成しました。必要に応じてフィールドを追加または削除することができます。

Checkボタン、Radioボタン、メニュー、コンボボックスなどを追加してユーザーフォームを拡張することができます。

# Create labels and entry fields for each inputfirst_name_label = Label(root, text="名前:")first_name_label.pack()first_name_entry = Entry(root)first_name_entry.pack()Last_name_label = Label(root, text="姓:")Last_name_label.pack()Last_name_entry = Entry(root)Last_name_entry.pack()email_label = Label(root, text="メール:")email_label.pack()email_entry = Entry(root)email_entry.pack()Mobile_label = Label(root, text="携帯番号:")Mobile_label.pack()Mobile_entry = Entry(root)Mobile_entry.pack()

ラベルとエントリーフィールドの配置には、pack、grid、placeなどの異なる方法を使用することができます。

pack()は、水平および垂直のボックスにウィジェットを配置します。ボックスは左、右、上、下の位置に制限されています。各ボックスはお互いにオフセットおよび相対的です。他の方法に比べて制限が高いと感じます。

grid()は、スプレッドシートのような二次元の行と列のグリッドにウィジェットを配置します。この方法では位置のロジックを理解するのは容易ですが、行と列の間のスペースを制御するのは難しいです。

place()は、xおよびyの絶対座標を使用してウィジェットを二次元のグリッドに配置します。位置はxおよびy座標を定義するか、相対的なxおよびy座標を定義することによって定義できます。

私のお気に入りは「place()」メソッドです。必要な場所に正確に配置できるため、このブログでは初心者向けにガイドをシンプルにするために「pack()」メソッドを使用しています。

別のブログで、各メソッドの違いについて詳しく説明するかもしれません。

ステップ4:エントリーフィールドからデータを取得する関数を作成する

ここでは、GUIからデータを取得し、将来の利用のためにデータをMicrosoft Excelに保存したいと思います。データを変更して保存方法を変更することもできます。

def register():    # フォームからユーザー入力を取得    first_name = first_name_entry.get()    Last_name = Last_name_entry.get()    email = email_entry.get()    Mobile = Mobile_entry.get()    # ユーザー入力で新しい行を作成    new_row = [first_name, Last_name, email,Mobile]    # 新しい行をExcelシートに追加    workbook = openpyxl.load_workbook("registration_data.xlsx")    sheet = workbook.active    sheet.append(new_row)    workbook.save("registration_data.xlsx")    messagebox.showinfo("成功", "登録が成功しました!")

ステップ5:送信ボタンを作成してメインループを実行する

register_button = Button(root, text="登録", command=register)register_button.pack()root.mainloop()

これで、登録用のユーザーフォームGUIを作成するための最後のステップです。このコードをエンドユーザーが実行できる実行可能ファイルとしてパッケージ化するか、さらに洗練されたアプリケーションに拡張してさまざまな素敵な機能を備えた完全なアプリケーションにすることができます。

使用するための完全なコード:

import openpyxlfrom tkinter import *from tkinter import messageboxdef register():    # フォームからユーザー入力を取得    first_name = first_name_entry.get()    Last_name = Last_name_entry.get()    email = email_entry.get()    Mobile = Mobile_entry.get()    # ユーザー入力で新しい行を作成    new_row = [first_name, Last_name, email,Mobile]    # 新しい行をExcelシートに追加    workbook = openpyxl.load_workbook("registration_data.xlsx")    sheet = workbook.active    sheet.append(new_row)    workbook.save("registration_data.xlsx")    messagebox.showinfo("成功", "登録が成功しました!")# メインのtkinterウィンドウを作成root = Tk()root.title("登録フォーム")root.geometry('300x300')# 各入力に対してラベルとエントリーフィールドを作成first_name_label = Label(root, text="名前:")first_name_label.pack()first_name_entry = Entry(root)first_name_entry.pack()Last_name_label = Label(root, text="姓:")Last_name_label.pack()Last_name_entry = Entry(root)Last_name_entry.pack()email_label = Label(root, text="メール:")email_label.pack()email_entry = Entry(root)email_entry.pack()Mobile_label = Label(root, text="携帯電話:")Mobile_label.pack()Mobile_entry = Entry(root)Mobile_entry.pack()register_button = Button(root, text="登録", command=register)register_button.pack()root.mainloop()

これは非常に基本的なコードですので、実際の使用例にはデータ検証技術を使用することをお勧めします。

おめでとうございます!最初のユーザーフォームが完成しました。

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

人工知能

「Midjourneyを使ってYouTubeのサムネイルを作る方法(販売可能なもの)」

無料でMidjourneyを使って、高品質なYouTubeのサムネイル(オンラインで販売可能)を作成することができます

AIニュース

AIを使用してKYC登録が簡単になりました

キャピタルマーケットのプレーヤーは、CAMSKRAのAI組み込みKYCソリューションのおかげで、長くて手間のかかるKYC登録プロセス...

機械学習

ID対マルチモーダル推奨システム:転移学習の視点

この記事は、移転可能な推薦システムの開発状況と代表的な作業(IDベース、モダリティベース、および大規模言語モデルベース...

人工知能

「死ぬ前に試してみる必要がある9つの最高のAIウェブサイト」

「これらのAIウェブサイトで生産性を倍増させましょう」

データサイエンス

第四次産業革命:AIと自動化

イントロダクション 人類の絶え間ない未知の探求は、技術の進歩をもたらしてきました。AIと自動化から成る産業革命の到来が世...