「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

AIニュース

「OpenAIがユーザーエクスペリエンスを革新するために6つのエキサイティングなChatGPT機能を発表」

ChatGPTを開発した先進的な企業であるOpenAIは、6つのエキサイティングな新機能を追加し、ユーザーエクスペリエンスを向上さ...

AIニュース

「AIにおけるアメリカのリーダシップの確かな基盤を築く方法」

Googleが報告書を共有します:AIにおけるアメリカのリーダーシップのための安全な基盤の構築' (Google ga hōkokusho wo kyōyū...

人工知能

「アフリカのコミュニティが気候変動に適応するためにAIが助ける3つの方法」

先週、ケニアのナイロビで初めて開催されたアフリカ気候サミット(ACS)に参加し、アフリカの指導者と共に気候危機に対処する...

人工知能

トップ10のコードなしAIアプリビルダー

あなたは、「コーディングを知っていたら、夢のソフトウェアを作れるのになあ」と思ったことはありませんか?それが現実にな...

AIニュース

ウィンブルドンがAIによる実況を導入

テニス愛好家にとって素晴らしいニュースです!世界で最も権威のあるテニストーナメントの一つであるウィンブルドンは、最新...

AIテクノロジー

高度なRAGテクニック:イラスト入り概要

この投稿の目標は、利用可能なRAGアルゴリズムとテクニックの概要と説明をすることなので、コードの実装の詳細には立ち入らず...