Найти - Пользователи
Полная версия: Как в классе FloatLayout явно задать размер окна?
Начало » Python для новичков » Как в классе FloatLayout явно задать размер окна?
1
Logran
Приветствую.
 class TestApp(App):
    def build(self):
        f1 = FloatLayout(size_hint=(None, None), size=(300, 300))
        f1.add_widget(Button(
            text="Кнопка",
            font_size=30,
            on_press=self.btn_press,
            size_hint=(0.5, 0.25),
            pos=(160, 0)
        ))
        return f1
Получается окно примерно 800х600, и оно не зависит от параметра size.
ZerG
может так?
 FlatLayout(size_hint=(None, None), width=300, height=200)
Logran
ZerG
может так?
Увы, нет. В букваре Киви указан мой вариант.
https://kivy.org/doc/stable/api-kivy.uix.floatlayout.html#module-kivy.uix.floatlayout
ZerG
Кажись я понял где ваша проблема.
Вы меняете размер слоя а хотите изменить размер самого окна приложения
тогда нужно это явно сказать

 from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.floatlayout import FloatLayout
from kivy.core.window import Window
class TestApp(App):
    def build(self):
        f1 = FloatLayout(size_hint=(None, None), size=(300, 300))
        button = Button(
            text="Кнопка",
            font_size=30,
            on_press=self.btn_press,
            size_hint=(0.5, 0.25),
            pos=(160, 0)
        )
        f1.add_widget(button)
        # Set window size to match layout size
        Window.size = f1.size
        return f1
    def btn_press(self, instance):
        pass  # Define your button press action here
if __name__ == '__main__':
    TestApp().run()
Logran
ZerG
тогда нужно это явно сказать
Спасибо, работает.
А как запретить менять размер окна?
Способом попроще, чем обработчик событий изменения размера окна.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB