我想用Python和Tkinter创建一个棋盘游戏
我希望它有一个调整大小的功能,但我有两个图形用户界面。第一个是方板(Spielfeld
),第二个是我想为播放器添加控制按钮的地方(Panel
)
因此,如果我想在主窗口中使用<Configure>
来调整我的板的大小,它将用新的大小绘制画布(self.FensterGroesse
)
当我在resize中传递else-function时,If用例运行得很好 但是如果我用else函数运行这个程序,它会自动调整大小直到它的1倍大。不仅仅是画布,整个窗户。在
我知道问题是Panel
是电路板的三分之一高,当self.Panel.config
设置新的大小<Configure>
时,它又被激活了。在
但我不知道怎么才能有这两个sanvase,一个是正方形,另一个是宽度相同的矩形,而平方位正好0.3*height
from Tkinter import *
class GUI:
def resize(self, event):
if event.height > (event.width*1.3):
self.FensterGroesse = event.width-2
else:
self.FensterGroesse = int(event.height/1.3)-2
self.Spielfeld.config(height=self.FensterGroesse, width=self.FensterGroesse)
self.Panel.config(height=self.FensterGroesse*0.3, width=self.FensterGroesse)
self.Spielfeld.pack()
self.Panel.pack()
def __init__(self):
self.FensterGroesse = 400
self.tkinter = __import__("Tkinter")
self.Master = self.tkinter.Tk()
self.Spielfeld = self.tkinter.Canvas(self.Master, height=self.FensterGroesse,
width=self.FensterGroesse, bg='#ffdead')
self.Panel = self.tkinter.Canvas(self.Master, height=self.FensterGroesse*0.3,
width=self.FensterGroesse, bg='brown')
self.Spielfeld.pack()
self.Panel.pack()
self.Master.bind("<Configure>", self.resize)
self.Master.mainloop()
GUI()
目前没有回答
相关问题 更多 >
编程相关推荐