前提・実現したいこと
pythonでtkinterを用いて画面遷移を行いたいと考えているのですが、思うようにプログラムを組んでみてもエラーが発生し、うまくできません。
発生している問題・エラーメッセージ
_tkinter.TclError: cannot use geometry manager grid inside . which already has slaves managed by pack
該当のソースコード
python
1root = Tk() 2root.title('分析') 3root.geometry('720x1280') 4window.grid_rowconfigure(0, weight=1) 5window.grid_columnconfigure(0, weight=1) 6 7mainframe = Frame(root) 8mainframe.pack() 9 10analisysframe = Frame(root) 11analisysframe.grid(row=0, column=0, sticky="nsew") 12 13def Analisys1(): 14 #---フレーム配置--- 15 analisys_frame1 = Frame(analisysframe,pady=10) 16 analisys_frame1.pack() 17 18 analisys_section1frame = Frame(analisysframe,pady=10) 19 analisys_section1frame.pack() 20 21 analisys_section2frame = Frame(analisysframe,pady=10) 22 analisys_section2frame.pack() 23 24 #---ここまで--- 25 26 analisys_heatlabel = Label(analisys_heatframe, text = 'メイン', font = 12) 27 analisys_heatlabel.pack() 28 29 #---ここから区間1--- 30 31 analisys_section1 = Label(analisys_section1frame,text = '区間1',font = 8) 32 analisys_section1.pack(side = 'left') 33 34 heat1_low = Spinbox(analisys_section1frame,from_ = 1, to = 60, increment = 1) 35 heat1_low.pack(side = 'left') 36 37 tilde = Label(analisys_section1frame,text = ' ~ ',font = 8) 38 tilde.pack(side = 'left') 39 40 heat1_high = Spinbox(analisys_section1frame,from_ = 1, to = 60, increment = 1) 41 heat1_high.pack(side = 'left') 42 43 #---ここから区間2--- 44 45 analisys_section2 = Label(analisys_section2frame,text = '区間2',font = 8) 46 analisys_section2.pack() 47 48 heat2_low = Spinbox(analisys_section2frame,from_ = 1, to = 60, increment = 1) 49 heat2_low.pack(side = 'left') 50 51 tilde = Label(analisys_section2frame,text = ' ~ ',font = 8) 52 tilde.pack(side = 'left') 53 54 heat2_high = Spinbox(analisys_section2frame,from_ = 1, to = 60, increment = 1) 55 heat2_high.pack(side = 'left') 56 57root.mainloop() 58
試したこと
画面遷移をするためにanalisysframe
をpack
ではなくgrid
にしています。記入はしておりませんがmainframe
にも色々とウィジットを追加しており、analisysframe.pack()
とするとAnalisys1()
の中身がほとんどウィンドウ外に行ってしまい、スピンボックスも操作することができません。
補足情報
mainframe
は記入しておりませんが、mainframe
の内容は全て動作確認済みです。また、Analisys1()
はmainframe
内のボタンで呼び出し可能です。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。