ryotankの備考録日記

趣味の電子工作についての備考録などなど

各運動説明GUI開発その3

説明ウィンドウの作成の仕方

import customtkinter as ctk
from CTkMessagebox import CTkMessagebox
from PIL import Image

app=ctk.CTk()


FONT_TYPE = ("meiryo")

ctk.set_appearance_mode("Dark")
ctk.set_default_color_theme("blue")

#サブウインドウ群
class range_win(ctk.CTkToplevel):
    def __init__(self, *args,  **kwargs):
        super().__init__(*args, **kwargs)
        self.geometry("1000x550")
        self.title("ランジの説明について")
        self.grid_rowconfigure(0, weight=1)
        self.grid_columnconfigure(0, weight=1)
        self.toplevel_font = ctk.CTkFont(family="meiryo", size=16, slant="italic")
        self.range_label = ctk.CTkLabel(master=self, font=self.toplevel_font,
                                        text='その1.足を肩幅に開いて真っ直ぐ立つ。手は体の横か腰におく')
        self.range_label.grid(row=1, column=0, padx=30)
        self.range_label_part2 = ctk.CTkLabel(master=self, font=self.toplevel_font,
                                            text='その2.大きく一歩踏み出し着地する')


class plank_win(ctk.CTkToplevel):
    def __init__(self, *args,  **kwargs):
        super().__init__(*args, **kwargs)
        self.geometry("1000x550")
        self.title("プランクの説明について")
        self.grid_rowconfigure(0, weight=1)
        self.grid_columnconfigure(0, weight=1)
        self.toplevel_font = ctk.CTkFont(family="meiryo", size=16, slant="italic")
        self.plank_part1 = ctk.CTkLabel(master=self, font=self.toplevel_font,
                                            text='その1.うつ伏せになり両肘を曲げて床につける。 こぶしを軽く握り前方へ')
        self.plank_part1.grid(row=1, column=0, padx=30)


class knee_elbow_win(ctk.CTkToplevel):
    def __init__(self, *args,  **kwargs):
        super().__init__(*args, **kwargs)
        self.geometry("1000x550")
        self.title("ニートゥエルボの説明について")
        self.grid_rowconfigure(0, weight=1)
        self.grid_columnconfigure(0, weight=1)
        self.toplevel_font = ctk.CTkFont(family="meiryo", size=16, slant="italic")
        self.knee_elbow_image =ctk.CTkImage(dark_image=Image.open(R"c:/users/ryotank-ggh/desktop/作業物/pythonプログラム関連/CustomTkinter関連/減量管理入力補助GUI/ボタン画像/ニートゥエルボ説明ボタン画像.png"), size=(400, 350))
        self.knee_elbow_label = ctk.CTkLabel(master=self, font=self.toplevel_font,
                                            text='その1.耳の後ろに手をあて、足は肩幅に開いて立つ')
        self.knee_elbow_label.grid(row=1, column=0, padx=20)
        self.knee_elbow_label_part2 = ctk.CTkLabel(master=self, font=self.toplevel_font,
                                                text='その2.ゆっくりと左足のひざを上げて、右ひじとくっつける')
        self.knee_elbow_label_part2.grid(row=2, column=0, padx=20)

こういうのを運動分追加していく

次にボタン編

self.knee_elbow_btn = ctk.CTkButton(master=self, 
            text="ニートゥエルボ説明", command=knee_elbow_win)
self.knee_elbow_btn.grid(row=2, column=0, padx=20)

このようにtextでどんな内容のボタンかを明記して command=で ニートゥエルボ説明ウィンドウが開くように紐づけしている

最後に説明ボタン

説明ウィンドウにも一部書いてあるが

swaisho_image = ctk.CTkImage(dark_image=Image.open(R"c:/users/*****(ユーザー名)/desktop/作業物/pythonプログラム関連/CustomTkinter関連/減量管理入力補助GUI/ボタン画像/スワイショウ説明ボタン画像.png"), size=(500, 300))
self.swaisho_btn = ctk.CTkButton(master=self, text="スワイショウ説明",
                                     image=self.swaisho_image, compound='left')

上記のように説明ボタンにはあらかじめCTkImageで 関連するpngファイルを付与している

image=self.swaisho_imageでこのように定義しておけば

好きな画像をボタンに付与出来る

pngファイルのパス(道順)を明記するのが面倒だけど

こんな感じのを150行ほど書けばGUIが完成するという寸法

次回は、ウィンドウアイコンの変更の仕方を説明出来れば・・・