我正在尝试用猕猴桃创建一个屏幕。我希望屏幕在左上角有一个小的主菜单按钮,在屏幕中央有一个大图像,约占屏幕大小的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
编辑: 添加我的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的文件中的第一个给定代码
答案 0 :(得分:1)
在editing_screen.kv
中,some_image.size
为您提供Image
小部件的大小,不一定是图像本身的大小。图像的实际大小可以通过Image
小部件的norm_image_size属性进行访问。