gpt4 book ai didi

python - Kivy GridLayout 中的空 id 列表

转载 作者:太空宇宙 更新时间:2023-11-03 16:59:08 26 4
gpt4 key购买 nike

我正在尝试使用 Kivy 开发一个玩具应用程序。

到目前为止,我有一个由 9 x 9 TextInput 小部件组成的网格,这些小部件已以编程方式添加到 GridLayout (我通过我的 id“grid” 来引用它) kv 文件)。

出于某种原因,虽然我为每个 TextInput 小部件分配了一个 id,但我在 get_widget_from_id 中获得的 ids 字典是空的。

我错过了什么?

ma​​in.py

from kivy.app import App
from kivy.uix.widget import Widget
from kivy.uix.textinput import TextInput
from kivy.clock import Clock

class SudokuGame(Widget):
# Initialize the grid of text inputs
def __init__(self, **kwargs):
super().__init__(**kwargs)

grid = self.ids["grid"]
for i in range(81):
row = i // 9
col = i % 9
grid.add_widget(TextInput(id = str(row) + "-" + str(col)))

# Try to retrieve one of the widgets from its id
def get_widget_from_id(self, *args):
print(self.ids["grid"].ids)

class SudokuApp(App):
def build(self):
game = SudokuGame()
Clock.schedule_once(game.get_widget_from_id)
return game

if __name__ == '__main__':
SudokuApp().run()

数独.kv

#:kivy 1.9.1

<TextInput@SudokuGame>:
text: ""
font_size: 0.7 * self.width
padding: 0.3 * self.width, (self.height - self.line_height) / 2
input_filter: lambda text, from_undo: text if ( 0 < int(text) < 10 and len(self.text) == 0 ) else ""
multiline: False
cursor_color: [0, 0, 0, 0]

<SudokuGame>:
canvas.before:
Color:
rgb: 1, 1, 1
Rectangle:
pos: self.pos
size: self.size
BoxLayout:
orientation: "vertical"
size: root.size
GridLayout:
id: grid
rows: 9
cols: 9
line_size: 6
canvas:
Color:
rgb: 0, 0, 0
Rectangle:
pos: self.x + self.width / 3 - self.line_size / 2, self.y
size: self.line_size, self.height
Rectangle:
pos: self.x + 2 * self.width / 3 - self.line_size / 2, self.y
size: self.line_size, self.height
Rectangle:
pos: self.x, self.y + self.height / 3 - self.line_size / 2
size: self.width, self.line_size
Rectangle:
pos: self.x, self.y + 2 * self.height / 3 - self.line_size / 2
size: self.width, self.line_size
BoxLayout:
orientation: "horizontal"
size_hint: 1, 0.1
Button:
text: "Solve"
Button:
text: "Clear"

最佳答案

ids 字典仅由 kv ids 填充。小部件拥有的 Kivy 属性实际上是不相关的,我不确定它是否有任何用途。

关于python - Kivy GridLayout 中的空 id 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35150338/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com