0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

tkinter クラスでの記述 ひな形

Posted at

Tkinter をクラスで作成したいときの、ひな形


import tkinter
from tkinter import ttk
from tkinter import Toplevel



# メイン画面 デザイン・配置
class MainScreenViewClass(tkinter.Frame):
    """
    メイン画面 デザイン・配置 クラス
    """
    def __init__(self, function_s, function_p, master=None): # master=None 自分が親
        super().__init__(master) # 基底クラスのコンストラクタをオーバーライド

        self.master.minsize(width=600, height=600)# 画面サイズの設定 min max 両方で大きさが変更されなくする。
        self.master.maxsize(width=600, height=600)
        self.master.title('メイン画面') # 画面タイトルの設定

        # クラス変数にセッティングファンクションclassを入れる
        self.func = function_s()        # メイン画面の処理クラス
        self.pack()
        self.create_widgets_main()



    # メイン画面 ウィジェットの作成 デザイン
    def create_widgets_main(self):
        """
        ウィジェットの配置 デザイン
        """
        # -----------上部フレーム
        self.Yahoo_frame_upper = tkinter.Frame(self)

        # タイトル ラベル
        test_label = tkinter.Label(self.Yahoo_frame_upper, text = "Yahoo!", font=("MSゴシック", "20", "bold")) #ラベルWidgetを生成
        test_label.pack(pady=4)

        # 商品検索 ボタン
        test_btn = tkinter.Button(self.Yahoo_frame_upper, text='検索', width=6, height=1)
        test_btn["command"] = lambda: self.func.Yahoo_goods_search_btn_f()
        test_btn.pack(side="left")

        self.Yahoo_frame_upper.pack(ipady = 10)
        # -----------上部フレーム


    # サブ画面 ウィジェットの作成 デザイン
    def create_widgets_property(self):
        """
        ウィジェットの配置 デザイン
        """
       # 設定画面の設定
        self.dialog = Toplevel(self)
        self.dialog.title("modal dialog")
        self.dialog.minsize(width=480, height=550)# 画面サイズの設定
        self.dialog.maxsize(width=480, height=550)

        # モーダルダイアログ(元画面を操作不可として表示)
        self.dialog.grab_set()

        # 空フレーム
        self.frame_Nothing = tkinter.Frame(self.dialog)
        self.frame_Nothing.pack(ipady = 20)




# 処理用のクラス
class testClass():
    def __init__(self) -> None:
        pass

    def test():
        pass




# メイン画面を表示する
root = tkinter.Tk()
app = MainScreenViewClass(function_s = testClass, master=root) # このやり方で、関数と画面を分離させる
app.mainloop()




0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?