Я пытаюсь создать экран в киве. Я хочу, чтобы на экране была небольшая кнопка главного меню в верхнем левом углу, большое изображение в центре экрана с примерно 80 процентами размера экрана и, кроме того, под всем, что мне нужно, кнопка, размер которой зависит от размера изображения.
Например,
Кнопка main_menu должна находиться в верхнем левом углу, и 5 процентов высоты экрана и его ширина должны быть настолько малы, насколько позволяет его текст.
Размер изображения должен составлять 80 процентов экрана,
Кнопка ниже должна иметь высоту 5 процентов и ширину, которые зависят от размера изображения.
Мой текущий код такой, но когда я запускаю этот код, текст на кнопке ниже показывает размер окна (1920, 1080) и (1, 1).
То, что я ожидаю от этого, чтобы показать, является размером изображения
#:kivy 0.0.0
<EditingScreen>:
GridLayout:
rows: 3
spacing: 10
AnchorLayout:
size_hint: None, 0.05
anchor_x: 'left'
anchor_y: 'top'
Button:
text: 'Main Menu'
on_press: root.manager.current = 'main'
Image:
id: some_image
source: 'img.png'
allow_stretch: True
keep_ratio: True
Button:
text: str(some_image.size) + ' ' + str(some_image.size_hint)
size_hint: None, 0.05
width: some_image.width
EDIT:
Добавление моего кода Python:
1) screen_manager.py:
from kivy.app import App
from kivy.uix.screenmanager import ScreenManager
from editing_screen import EditingScreen
class Manager(ScreenManager):
def __init__(self, **kwargs):
super(Manager, self).__init__(**kwargs)
self.add_widget(MainScreen(name='main'))
self.add_widget(InstructionsScreen(name='instructions'))
self.add_widget(EditingScreen(name='editing'))
self.current = 'editing'
class ManagerApp(App):
def build(self):
return Manager()
if __name__ == '__main__':
ManagerApp().run()
2) edit_screen.py:
from kivy.uix.screenmanager import Screen
from kivy.lang import Builder
Builder.load_file('editing_screen.kv')
class EditingScreen(Screen):
pass
3) Первый указанный код в файле с именем edit_screen.kv