質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Tkinter

Tkinterは、GUIツールキットである“Tk”をPythonから利用できるようにした標準ライブラリである。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

5043閲覧

pythonでの画面遷移

PICCOLO

総合スコア12

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Tkinter

Tkinterは、GUIツールキットである“Tk”をPythonから利用できるようにした標準ライブラリである。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2018/10/01 07:38

編集2018/10/01 09:23

前提・実現したいこと

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

試したこと

画面遷移をするためにanalisysframepackではなくgridにしています。記入はしておりませんがmainframeにも色々とウィジットを追加しており、analisysframe.pack()とするとAnalisys1()の中身がほとんどウィンドウ外に行ってしまい、スピンボックスも操作することができません。

補足情報

mainframeは記入しておりませんが、mainframeの内容は全て動作確認済みです。また、Analisys1()mainframe内のボタンで呼び出し可能です。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

mainframe.pack()mainframe.grid(row=0, column=0, sticky="nsew")に変更することで画面遷移が可能になりました。

投稿2018/10/01 14:05

PICCOLO

総合スコア12

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問