前提・実現したいこと
画面1から、画面2に遷移できるようにしたい。(画面1と別にウィンドウが作られるのではなく、画面1のウィンドウに画面2が表示されるようにする。下記のコードは、メインウィンドウとは、別にウィンドウを作っています。)
画面1:
画面2:
発生している問題・エラーメッセージ
該当のソースコード
画面1(MainWindow.py)
python
# -*- coding: utf-8 -*- #==================================================================================== # ライブラリ #==================================================================================== # GUIを扱う import tkinter # tkinterよりデザインが良くなる from tkinter import ttk # 名前入力画面を扱う import InputNameWindow as inw #==================================================================================== # 関数定義 #==================================================================================== #------------------------------------------------------------------------------------ # startボタンを押したときの処理 #------------------------------------------------------------------------------------ def startCommand(): inw.main() #==================================================================================== # 本体関数 #==================================================================================== # main関数を追加し、スコープを切る def main() -> None: # インスタンス生成 window = tkinter.Tk() # ウィンドウタイトルを決定 window.title("WORDPRACTICE") # ウィンドウの大きさを決定 window.geometry("800x600") ### タイトル表示 #--- ラベル生成 # 空白 spaceLabel1 = [tkinter.Label(window, text="") for column in range(10)] spaceLabel2 = [tkinter.Label(window, text="") for column in range(3)] # タイトル titleLabelFont = ("Helevetice", 32, "bold") titleLabel = ttk.Label(window, text="WORDPRACTICE", font=titleLabelFont) #--- ラベル配置 # 空白 for index in range(10): spaceLabel1[index].pack() # タイトル titleLabel.pack() ### ボタン表示 #--- ボタン生成 startButton =\ ttk.Button(window, text=" Start ", command=startCommand) #--- ボタン配置 # 空白 for index in range(3): spaceLabel2[index].pack() # ボタン startButton.pack() # プログラムを始める window.mainloop() #==================================================================================== # 本体処理 #==================================================================================== if __name__ == "__main__": main()
画面2(InputNameWindow.py)
python
# -*- coding: utf-8 -*- #==================================================================================== # ライブラリ #==================================================================================== # GUIを扱う import tkinter # tkinterよりデザインが良くなる from tkinter import ttk #==================================================================================== # 関数定義 #==================================================================================== #------------------------------------------------------------------------------------ # #------------------------------------------------------------------------------------ #==================================================================================== # 本体関数 #==================================================================================== def main() -> None: # インスタンス生成 window = tkinter.Tk() # ウィンドウタイトルを決定 window.title("WORDPRACTICE") # ウィンドウの大きさを決定 window.geometry("800x600") ### 空白 #--- ラベル生成 spaceLabel1 = [tkinter.Label(window, text="") for column in range(5)] # タイトル titleLabelFont = ("Helevetice", 18) titleLabel =\ ttk.Label(window, text="ユーザー名を入力してください。", font=titleLabelFont) #--- ラベル配置 # 空白 for index in range(5): spaceLabel1[index].pack() # タイトル titleLabel.pack() ### フレーム表示 #--- フレーム生成 frame = ttk.Frame(window) #--- フレーム配置 frame.pack() ### ユーザー名入力表示 #--- ラベル生成 # 空白 spaceLabel2 = [tkinter.Label(frame, text="") for column in range(3)] # ユーザー名 userNameLabelFont = ("Helevetice", 14) userNameLabel = ttk.Label(frame, text="ユーザー名:", font=userNameLabelFont) #--- ラベル配置 # 空白 for index in range(3): spaceLabel2[index].grid(row=index, column=0) # ユーザー名 userNameLabel.grid(row=4, column=0) #--- エントリー生成 userName = tkinter.StringVar() userNameEntry = ttk.Entry(frame, textvariable=userName, width=30) #--- エントリー配置 userNameEntry.grid(row=4, column=1) ### ボタン表示 #--- ボタン生成 okButton = ttk.Button(frame, text=" OK ") #--- ボタン配置 okButton.grid(row=4, column=3) # プログラムを始める window.mainloop()
まだ回答がついていません
会員登録して回答してみよう