前提・実現したいこと
画面1から、画面2に遷移できるようにしたい。(画面1と別にウィンドウが作られるのではなく、画面1のウィンドウに画面2が表示されるようにする。下記のコードは、メインウィンドウとは、別にウィンドウを作っています。)
発生している問題・エラーメッセージ
該当のソースコード
画面1(MainWindow.py)
python
1# -*- coding: utf-8 -*- 2 3#==================================================================================== 4# ライブラリ 5#==================================================================================== 6# GUIを扱う 7import tkinter 8# tkinterよりデザインが良くなる 9from tkinter import ttk 10# 名前入力画面を扱う 11import InputNameWindow as inw 12 13#==================================================================================== 14# 関数定義 15#==================================================================================== 16#------------------------------------------------------------------------------------ 17# startボタンを押したときの処理 18#------------------------------------------------------------------------------------ 19def startCommand(): 20 inw.main() 21 22#==================================================================================== 23# 本体関数 24#==================================================================================== 25# main関数を追加し、スコープを切る 26def main() -> None: 27 # インスタンス生成 28 window = tkinter.Tk() 29 30 # ウィンドウタイトルを決定 31 window.title("WORDPRACTICE") 32 33 # ウィンドウの大きさを決定 34 window.geometry("800x600") 35 36 ### タイトル表示 37 #--- ラベル生成 38 # 空白 39 spaceLabel1 = [tkinter.Label(window, text="") for column in range(10)] 40 spaceLabel2 = [tkinter.Label(window, text="") for column in range(3)] 41 # タイトル 42 titleLabelFont = ("Helevetice", 32, "bold") 43 titleLabel = ttk.Label(window, text="WORDPRACTICE", font=titleLabelFont) 44 45 #--- ラベル配置 46 # 空白 47 for index in range(10): 48 spaceLabel1[index].pack() 49 # タイトル 50 titleLabel.pack() 51 52 ### ボタン表示 53 #--- ボタン生成 54 startButton =\ 55 ttk.Button(window, text=" Start ", command=startCommand) 56 57 #--- ボタン配置 58 # 空白 59 for index in range(3): 60 spaceLabel2[index].pack() 61 # ボタン 62 startButton.pack() 63 64 # プログラムを始める 65 window.mainloop() 66 67#==================================================================================== 68# 本体処理 69#==================================================================================== 70if __name__ == "__main__": 71 main() 72 73
画面2(InputNameWindow.py)
python
1# -*- coding: utf-8 -*- 2 3#==================================================================================== 4# ライブラリ 5#==================================================================================== 6# GUIを扱う 7import tkinter 8# tkinterよりデザインが良くなる 9from tkinter import ttk 10 11#==================================================================================== 12# 関数定義 13#==================================================================================== 14#------------------------------------------------------------------------------------ 15# 16#------------------------------------------------------------------------------------ 17 18#==================================================================================== 19# 本体関数 20#==================================================================================== 21def main() -> None: 22 # インスタンス生成 23 window = tkinter.Tk() 24 25 # ウィンドウタイトルを決定 26 window.title("WORDPRACTICE") 27 28 # ウィンドウの大きさを決定 29 window.geometry("800x600") 30 31 ### 空白 32 #--- ラベル生成 33 spaceLabel1 = [tkinter.Label(window, text="") for column in range(5)] 34 # タイトル 35 titleLabelFont = ("Helevetice", 18) 36 titleLabel =\ 37 ttk.Label(window, text="ユーザー名を入力してください。", font=titleLabelFont) 38 39 #--- ラベル配置 40 # 空白 41 for index in range(5): 42 spaceLabel1[index].pack() 43 # タイトル 44 titleLabel.pack() 45 46 ### フレーム表示 47 #--- フレーム生成 48 frame = ttk.Frame(window) 49 #--- フレーム配置 50 frame.pack() 51 52 ### ユーザー名入力表示 53 #--- ラベル生成 54 # 空白 55 spaceLabel2 = [tkinter.Label(frame, text="") for column in range(3)] 56 57 # ユーザー名 58 userNameLabelFont = ("Helevetice", 14) 59 userNameLabel = ttk.Label(frame, text="ユーザー名:", font=userNameLabelFont) 60 61 #--- ラベル配置 62 # 空白 63 for index in range(3): 64 spaceLabel2[index].grid(row=index, column=0) 65 # ユーザー名 66 userNameLabel.grid(row=4, column=0) 67 68 #--- エントリー生成 69 userName = tkinter.StringVar() 70 userNameEntry = ttk.Entry(frame, textvariable=userName, width=30) 71 72 #--- エントリー配置 73 userNameEntry.grid(row=4, column=1) 74 75 ### ボタン表示 76 #--- ボタン生成 77 okButton = ttk.Button(frame, text=" OK ") 78 79 #--- ボタン配置 80 okButton.grid(row=4, column=3) 81 82 # プログラムを始める 83 window.mainloop() 84
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/03/07 07:15