Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 21, 2024 18:20:34

Logran
Зарегистрирован: 2024-01-03
Сообщения: 33
Репутация: +  0  -
Профиль   Отправить e-mail  

Как в классе FloatLayout явно задать размер окна?

Приветствую.

 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.

Офлайн

#2 Фев. 22, 2024 07:53:38

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2595
Репутация: +  61  -
Профиль   Отправить e-mail  

Как в классе FloatLayout явно задать размер окна?

может так?

 FlatLayout(size_hint=(None, None), width=300, height=200)



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#3 Фев. 22, 2024 08:34:27

Logran
Зарегистрирован: 2024-01-03
Сообщения: 33
Репутация: +  0  -
Профиль   Отправить e-mail  

Как в классе FloatLayout явно задать размер окна?

ZerG
может так?
Увы, нет. В букваре Киви указан мой вариант.
https://kivy.org/doc/stable/api-kivy.uix.floatlayout.html#module-kivy.uix.floatlayout

Отредактировано Logran (Фев. 22, 2024 08:34:47)

Офлайн

#4 Фев. 22, 2024 09:56:11

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2595
Репутация: +  61  -
Профиль   Отправить e-mail  

Как в классе FloatLayout явно задать размер окна?

Кажись я понял где ваша проблема.
Вы меняете размер слоя а хотите изменить размер самого окна приложения
тогда нужно это явно сказать

 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()



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#5 Фев. 24, 2024 18:45:22

Logran
Зарегистрирован: 2024-01-03
Сообщения: 33
Репутация: +  0  -
Профиль   Отправить e-mail  

Как в классе FloatLayout явно задать размер окна?

ZerG
тогда нужно это явно сказать
Спасибо, работает.
А как запретить менять размер окна?
Способом попроще, чем обработчик событий изменения размера окна.

Отредактировано Logran (Фев. 24, 2024 19:15:47)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version