前提・実現したいこと
フレームの上にカンバスを作ってその上に画像を張り付けているが、ボタンをその画像の上に表示するといかにも不格好で原色なので、枠をなくしたい、文字のみ表示させてほしい。
該当のソースコード
python
1#coding:shift-jis 2import tkinter as tk 3from PIL import Image, ImageTk 4 5 6 def __init__(self, *args, **kwargs): 7 # 呪文 8 tk.Tk.__init__(self, *args, **kwargs) 9 10 # ウィンドウタイトルを決定 11 self.title("Tkinter change page") 12 13 # ウィンドウの大きさを決定 14 self.geometry("800x600") 15 16 # ウィンドウのグリッドを 1x1 にする 17 # この処理をコメントアウトすると配置がズレる 18 self.grid_rowconfigure(0, weight=1) 19 self.grid_columnconfigure(0, weight=1) 20 21#-----------------------------------main_frame(start)---------------------- 22 23 # メインページフレーム作成 24 self.main_frame = tk.Frame() 25 self.main_frame.grid(row=0, column=0, sticky="nsew") 26 27 # 画像読み込み 28 img = Image.open("rpg_bg1.jpg") 29 30 # 画像表示用キャンバス 31 self.canvas = tk.Canvas(self.main_frame,bg="white",height=600,width=800) 32 self.canvas.place(x=0,y=0) 33 34 # 画像貼り付け 35 self.tk_image = ImageTk.PhotoImage(image=img) 36 self.canvas.create_image(0, 0, anchor="nw", image=self.tk_image) 37 38 # タイトルラベル作成 39 self.titleLabel = tk.Label(self.main_frame, text="Quest", font=('Helvetica', '40'),bg="white",fg="red") 40 self.titleLabel.pack(anchor='n') 41 42 # フレーム1に移動するボタン 43 self.changePageButton = tk.Button(self.main_frame, text="START",font=('Helvetica', '40'), command=lambda : self.changePage(self.frame1)) 44 self.changePageButton.pack(anchor='s',expand = True) 45 46 # 動作終了ボタン 47 self.endButton = tk.Button(self.main_frame, text= "END", command=lambda : App.destroy(self)) 48 self.endButton.pack(anchor='center') 49 50#-------------------------------------------------------------------------- 51. 52. 53. 54 #main_frameを一番上に表示 55 self.main_frame.tkraise() 56 57 def changePage(self, page): 58 ''' 59 画面遷移用の関数 60 ''' 61 page.tkraise() 62 63if __name__ == "__main__": 64 app = App() 65 app.mainloop() 66
補足情報(FW/ツールのバージョンなど)
Python 3.7.1
Win
ソースコードを実行可能な形で掲載出来ますか。
エラーが出ている場合であれば、該当箇所だけで判明することも有りますが
動作確認するには、省略された部分を推測で埋めないといけない為。
画像等の外部ファイルも、準備しないと実行できないので、
質問と直接関係なければ省いても構いません。
(キャンバスを適当な背景色にすれば、透過は確認出来る為)
回答1件
あなたの回答
tips
プレビュー