2017-02-08 14 views
1

左のフレームにラベルを表示することはできません。私はPythonのGUIが新しくなっています。私のコードはちょっとこのように書きます:彼らが画面から外れているので、Python - >ラベルがフレームに表示されない

from tkinter import * 

root = Tk() 

mainFrame = Frame(root, width=700, height=500) 
mainFrame.pack() 

leftFrame = Frame(mainFrame, bg="#c2c3c4") 
leftFrame.place(relheight=1, relwidth=0.34, anchor=W) 

label1 = Label(leftFrame, text="Label1") 
label2 = Label(leftFrame, text="Label2") 

label1.grid(columnspan=2, sticky=W, pady=(20, 0)) 
label2.grid(columnspan=3, sticky=W, pady=(5, 0)) 

root.mainloop() 

+0

'pack'、' place'と 'grid'が混在しているので、問題が発生する可能性があります。 1つのジオメトリマネージャに固執しようとします。 –

+1

@StevenSummers:いいえ、問題は 'pack'、' place'と 'grid'が混在しているためではありません。 OPが 'place 'を間違って使っているということだけです。アプリケーションで 'grid'と' pack'を一緒に使うのがベストプラクティスだと思うのですが、同じ親を持つウィジェットの両方で使うことはできません。 –

+0

ああ、私はそれを避けるのが最善だと思った。 –

答えて

1

は、この特定のケースでは、あなたはラベルが表示されません。 leftFrameは、Wのアンカーを有し、これは、leftFrameの垂直中心が0,0であることを意味する。つまり、フレームの半分がウィンドウの表示部分の上にあります。

これを証明する簡単な方法は、Wの代わりにNWのアンカーを使用することです。これにより、フレームの左上隅が親の左上隅になります。

ただし、ではなく、を使用することを強くお勧めします。placeを使用してください。それはその用途を持っていますが、まれに使用されるべきではありません。あなたは自分で多くの作業をする必要があります。その結果は、通常、フォント、解像度、またはウィンドウサイズの変更にはあまり反応しません。

+0

注目。応答していただきありがとうございます。 :D – Darrius

関連する問題