【发布时间】:2021-07-17 15:59:43
【问题描述】:
我正在制作一个类似于 exel 的程序。
然后我遇到了一个问题。
StackLayout 的堆栈很好,但由于输入的大小是静态的,因此在某些情况下会留下空白。
我尝试像size=(self.width/5, self.height/5)那样做。
如果有人现在看到 exel 的外观,因为屏幕有更多输入,这就是我使用 ScrollLayout 的原因,我只希望一行中只有 5 个输入(用户可以在显示设置中更改它(我会这样做,然后创建 UI 的其余部分))
这是我现在尝试过的。
main.py:
from kivy.metrics import dp
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.gridlayout import GridLayout
from kivy.uix.stacklayout import StackLayout
from kivy.uix.textinput import TextInput
class EditorGrid(BoxLayout):
def __init__(self, **kwargs):
super().__init__(**kwargs)
size = dp(self.width / 5)
print(size)
for i in range(0, 100):
b = TextInput(text=str(i + 1), size_hint=(None, None), size=(dp(size), dp(size)))
self.add_widget(b)
def on_size(self, *args):
self.size = dp(self.width/5)
print(self.size)
pass
class pxApp(App):
pass
if __name__ == "__main__":
pxApp().run()
kivy 文件:
Scrolling:
<Scrolling@ScrollView>
do_scroll_x: True
do_scroll_y: True
EditorGrid:
size_hint: 1, None
height: self.minimum_height
<EditorGrid>:
init 中的下一个问题是窗口大小为 100x100。
【问题讨论】:
-
您的
kivy文件和您的main.py相同吗? -
@John Anderson 抱歉,复制了错误的内容。
标签: python python-3.x kivy kivy-language