在为网格创建单个文件时创建单个逻辑时发出问题。使用kivy进行数独谜题的2x2,4x4和6x6网格

问题描述 投票:-4回答:1

使用kivy为Sudoku拼图创建单个文件2x2,4x4和6x6网格时创建单个逻辑时出现问题。框也应该从用户那里获取输入,但不能动态改变。

class SudokuGrid(GridLayout):

def __init__(self, **kwargs):
    super(SudokuGrid, self).__init__(**kwargs)
    self.spacing = (5, 5)
    for row in range(self.rows):
        for col in range(self.cols):
            self.add_widget(SudokuGridCell())

样本类继续进行。

** SudokuGridCell的内置文件:Class **

class SudokuGridCell(AnchorLayout):
    pass

Builder.load_string('''
<SudokuCell@AnchorLayout>:
    anchor_x: 'center'
    anchor_y: 'center'
    canvas:
        Color:
            rgb: .6, .6, .6
        Rectangle:
            pos: self.pos
            size: self.size
    TextInput:
        multiline: False
        size_hint: (0.2, 0.2)
        text: '23'
''')
python frameworks kivy kivy-language
1个回答
0
投票

我不应该这样做,但这里有一个让你入门的例子:

from kivy.app import App
from kivy.lang import Builder
from kivy.uix.anchorlayout import AnchorLayout
from kivy.uix.gridlayout import GridLayout

class SudokuCell(AnchorLayout):
    pass

Builder.load_string('''
<SudokuCell@AnchorLayout>:
    anchor_x: 'center'
    anchor_y: 'center'
    canvas:
        Color:
            rgb: .6, .6, .6
        Rectangle:
            pos: self.pos
            size: self.size
    TextInput:
        multiline: False
        size_hint: (0.2, 0.2)
        text: '23'
''')

class SudokuGrid(GridLayout):

    def __init__(self, **kwargs):
        super(SudokuGrid, self).__init__(**kwargs)
        self.spacing = (3, 3)
        for row in range(self.rows):
            for col in range(self.cols):
                self.add_widget(SudokuCell())


class SudokuApp(App):
    def build(self):
        return SudokuGrid(rows=4, cols=4)

if __name__ == '__main__':
    SudokuApp().run()
© www.soinside.com 2019 - 2024. All rights reserved.