Я пытаюсь построить шахматную доску, состоящую из кнопок. Я создал 3 виджета в одну строку. Снаружи есть наклейки (начинка), а внутри я хочу поставить шахматную доску. Я бы хотел, чтобы он всегда занимал 90% ширины экрана и автоматически настраивал его высоту так, чтобы он всегда оставался квадратным. Также было бы необходимо установить кнопки всегда квадратными, но я также не могу справиться с этим. Можете ли вы помочь мне?
class ChessBoard(GridLayout):
def __init__(self, **kwargs):
super(ChessBoard, self).__init__(**kwargs)
self.cols = 8
for i in range(64):
self.cell = Button(text="", size_hint_y=self.height/8, height=self.width/8)
self.add_widget(self.cell)
class ChessBoardContainer(GridLayout):
def __init__(self, **kwargs):
super(ChessBoardContainer, self).__init__(**kwargs)
self.orientation='horizontal'
self.cols=3
self.lab1 = Label(text="1")
self.add_widget(self.lab1)
self.board = ChessBoard()
self.add_widget(self.board)
self.lab2 = Label(text="2")
self.add_widget(self.lab2)
class CombWidget(BoxLayout):
def __init__(self, **kwargs):
super(CombWidget, self).__init__(**kwargs)
self.orientation='vertical'
self.but1 = Button(text="But1", font_size=40)
self.add_widget(self.but1)
self.chessb = ChessBoardContainer()
self.add_widget(self.chessb)
self.but2 = Button(text="But2", font_size=40)
self.add_widget(self.but2)
class MyPaintApp(App):
def build(self):
return CombWidget()
Прямо сейчас это мой результат:
Я хотел бы получить что-то подобное (Мастер краски;)). Может быть, это можно сделать без этих ярлыков?