2017-05-05 9 views
0

メインウィンドウの背景を設定することができ、背景画像やウィジェットを押しつぶしている画像に合わせることを心配する必要はありません道の。フレームのサイズを変更せずにフレームの背景画像を設定して画像に合わせることはできません

しかし、私はそれは巨大な混乱となったフレームと同じことをしようとすると...

私は画像自体のサイズを変更するに関連するといくつかのことが、すべての縫い目を試してみましたが、私はしたくありません画像を歪める画像をフレームに入れて、画像に合わせてフレームのサイズを変更しないようにします。

フレームのサイズを変更せずにフレームの背景に画像を配置する方法はありますか?

編集:注:私が使用している画像は画面を満たすのに十分な大きさなので、ユーザーがサイズ変更を行っている場合、画像は余分なスペースをすべてカバーします。

だからこれは私がメインウィンドウに背景画像を追加する方法です:

bgImage=PhotoImage(file="./Colors/bgImage.png") 
bgLable = Label(root,image = bgImage) 
bgLable.image = bgImage 
bgLable.grid(row=0,column=0,columnspan=3,rowspan=8) 

しかし、私はそれは同様に、フレームのサイズを変更したフレームと同じことをしようとすると:

FrameTL = Frame(root, width = 100) 
FrameTL.grid(row = 0, column = 0, rowspan = 20, columnspan = 1, sticky = W+N+S) 
TLbg = Label(FrameTL,image = bgImage) 
TLbg.image = bgImage 
TLbg.grid(row=0,column=0) 

私が試したことがいくつかありましたが、ウィンドウ/フレームに合わせて画像を歪ませ、画像を歪ませたくありません。

編集:

私はある種の問題を発見しました。フレームを使用する代わりに、サイドメニューに必要なウィジェット以外のすべてのウィジェットに対して.gridを使用しました。サイドメニューウィジェットはウインドウの左上に逸脱していなかったので、問題を解決するためにフレームを使用しようとしていました(現在は.placeを使用しています)。フレームは機能しますが、フレームを透明にする方法が見つからないため、ルートウィンドウから背景を保持できます。それで、私はフレームに背景画像を張り付けようとしたが、画像に合うようにフレームのサイズを変更していない。

+0

メインウィンドウで背景画像(画面のサイズ)の最初のスニペットを実行すると、ウィンドウのサイズが変更されます。 – martineau

+0

メインウィンドウには開始サイズが設定されており、プログラムを開いた後に調整することができます。 –

答えて

2

フレームのサイズを変更せずにフレームの背景に画像を配置する方法はありますか?

はい。相対座標でplaceを使用してください。次の例では、画像を含むラベルがルートウィンドウの中央に配置され、他のウィジェットには影響しません。

some_frame = tk.Frame(root, borderwidth=2, relief="raised", width=200, height=200) 
... 
background = tk.Label(some_frame, text="I am in the center", background="pink") 
background.place(relx=.5, rely=.5, anchor="c") 

これは私がplacegridまたはpackを使用してより優れていると思います数回の一つです。これは、公式ドキュメントが言うことであるplaceについて:プレーサーは、マスターウィンドウの形状またはスレーブ・ウィンドウの親を操作しようとする試みを行いません(例えばパッカーなど)、他の多くの幾何学のマネージャーとは異なり

(すなわち要求されたサイズは設定されません)。これらのウィンドウのサイズを制御するには、この目的のための構成オプションを提供するフレームとキャンバスのようなウィンドウを作成します。

+0

イメージをルートウィンドウに入れたくありません。私はフレームにそれをしたい。 –

+0

@SierrMountainTech:それをフレームの子にします。 –

+0

'TLbg = Label(FrameTL、image = bgImage)'は画像をフレームに配置しますが、フレームは画像に合わせてサイズ変更されます。 –

関連する問題