2017-03-08 4 views
1

私は現在、私の授業のためにpython tkinterのインボイスジェネレータで作業しています。私はプログラミングが初めてで、基本的なログインページを作成しました。ログインボタンが押されたとき(まだ拘束が設定されていない)、GUIは次の '画面'に移動します。私はこれを行うためにフレームを使用しています。しかし、次の 'ページ'では、私が試して配置したり、グリッドを使用したりすると、表示されないだけで、空のGUIウィンドウが表示されます。 ! ます。#/ usr/bin/pythonの # - - コーディング:UTF-8から - 私は基本的にしたいことはplaceにできることか、また私のウィジェットの位置を設定するためにgridを使用することです別のフレームで "pack"を使用した後に "grid"と "place"を使用しようとしましたが、ウィジェットは表示されません。

import tkinter as tk 


root = tk.Tk() 

def go_to_login(): 
    f1.pack() 
    f2.pack_forget() 

def go_to_first(): 
    f1.pack_forget() 
    f2.pack() 

root.geometry('1280x800') 
root.title('Invoice') 

f1 = tk.Frame(root) 
label_US = tk.Label(f1, text='Username') 
label_US.pack() 
label_PW = tk.Label(f1, text='Password') 
label_PW.pack() 

entry_US = tk.Entry(f1) 
entry_US.pack() 
entry_PW = tk.Entry(f1, show='*') 
entry_PW.pack() 

checkbox_LI = tk.Checkbutton(f1, text='Keep me logged in') 
checkbox_LI.pack() 

but_LI = tk.Button(f1, text='login', command=go_to_first) 
but_LI.pack() 

but_QT = tk.Button(f1, text='Quit', command=quit) 
but_QT.pack() 

f2 = tk.Frame(root) 
but_LO = tk.Button(f2, text='Logout', command=go_to_login) 
but_LO.pack() # try to change pack here 

but_HP = tk.Button(f2, text='Help') 
but_HP.pack() # try to change pack here 

but_NX1 = tk.Button(f2, text='Next', command=quit) 
but_NX1.pack() # try to change pack here 

f1.pack() 
root.mainloop() 

私はpackを使用しない限り、空のGUI画面が表示されます。私は間違って何をやったのですか?代わりにウィジェットを置くことができますか?

私はこのことが最善の方法であるかどうかは分かりませんし、クラスなどを使っている経験はありませんが、私は提案することができます。

+1

を私のために私が変更した場合、それは '作品ギリギリd。おそらく、あなたが使っていると思うように 'grid'と' place'を使用していないでしょう。これらのジオメトリ・マネージャのドキュメントを確認してください。 – nbro

答えて

0

.grid()を使用するときにrowcolumnを指定する限り、コードは両方の「画面」で正常に動作します。あなたは

1)のコードを働いていなかったしている私はなぜそこ)あなたがしようとすると、同じフレーム内に2つのラベルのための.pack.gridを使用する場合は、エラー

2を取得する2つの理由を考えることができますあなたのエラーの原因となって、あなたのコード内で何か他のものであってもよいし、そうならば、とにかくあなたの質問

に追加し、はここに私のために働いていたコードです:

f2 = tk.Frame(root) 
but_LO = tk.Button(f2, text='Logout', command=go_to_login) 
but_LO.grid(row = 0, column = 0) # specify row and column 

but_HP = tk.Button(f2, text='Help') 
but_HP.grid(row = 1, column = 0) 

but_NX1 = tk.Button(f2, text='Next', command=quit) 
but_NX1.grid(row = 2, column = 0) 
関連する問題