2012-04-16 18 views
0

ボタンウィジェットを背景画像の上に置くにはどうすればよいですか?ボタンウィジェットをラベルウィジェットに配置し、Tkinterでその位置を決定する方法

from Tkinter import * 
import tkMessageBox 

root = Tk() 

# load image 
logo = PhotoImage(file="C:\\Users\\admin\\Desktop\\project\\front page.gif") 
w = logo.width() 
h = logo.height() 

root.geometry('%dx%d+0+0' % (w,h)) 

def helloCallBack(): 
    tkMessageBox.showinfo("Hello Python", "Hello World") 

#create widgets 
B = Button(root,text = "ASSOCIATIONS", command = helloCallBack,width = 20,padx = 20) 
B.pack() 

B1 = Button(root,text = "HELP", command = helloCallBack,width = 20,padx = 20) 
B1.place(relx=1, x=-50, y=2, anchor=NE) 
B1.pack() 

w1 = Label(root, compound = CENTER, image = logo).pack(side="right") 

root.mainloop() 

答えて

3

一番簡単な方法は、placeを使用してウィジェットの背景画像を置くことで、その後、

background=Label(root, image=logo).place(x=0,y=0,relwidth=1, relheight=1) 
b = Button(root, ...).pack(...) 

ていることを確認してくださいあなたは、通常のいずれかpackまたはgridで行う方法をウィジェットという点で他のウィジェットを置きますバックグラウンドを最初に作成して、スタックの順序を低くします。

本当にラベルにボタンを入れたい場合は、ラベルをボタンの親とし、通常通りにpackまたはgridを使用してください。ボタンやラベル、または他のウィジェット(しかし、最終結果は期待通りではないかもしれません)。

+0

もう一つの簡単なことは、キャンバスの内側にボタンと画像を置くことです。キャンバス内のウィジェットは常にキャンバス内の他のすべての上に表示されます。 (物を適切に重ねるという選択肢があったとしてもいいが、現時点ではない。) –

関連する問題