Kivy中的Python浮动布局?


Kivy是一个开源的Python库,用于快速开发使用创新用户界面(例如多点触控应用程序)的应用程序。它用于开发Android应用程序以及桌面应用程序。在本文中,我们将学习如何使用FloatLayout小部件在窗口中创建不同位置的按钮。按钮的位置可以是绝对位置,也可以相对于较大的窗口的相对位置。

使用绝对位置

在这种方法中,我们将按钮的位置设置为固定位置。因此,当窗口大小调整时,窗口大小和按钮大小会发生变化,但按钮的位置保持不变。因此,根据窗口被压缩的方式,按钮有时会隐藏。

示例

import kivy
from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.floatlayout import FloatLayout
#from kivy.config import Config

#Config.set('graphics', 'resizable', True)

# creating the App class
class FloatApp(App):

   def build(self):
      # creating Floatlayout
      Flt = FloatLayout()

      btn = Button(text='Hello world',
         size_hint=(0.5 ,0.2),
         pos=(100, 200),
         background_normal='',
         background_color=(1, 0, 1, 1))

      # adding button widget
      Flt.add_widget(btn)

      return Flt

# Run the app
FloatApp().run()

运行上面的代码,我们将得到以下结果:

使用相对位置

在这种方法中,我们使用位置提示设置按钮的位置。因此,当窗口大小调整时,窗口大小和按钮大小会发生变化,并且按钮的位置也会相对于窗口的相对大小而变化。因此,当窗口被压缩时,按钮永远不会隐藏。

示例

from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.floatlayout import FloatLayout
from kivy.config import Config

Config.set('graphics', 'resizable', True)

# creating the App class
class FloatApp(App):

   def build(self):
      # creating Floatlayout
      Flt = FloatLayout()

      btn = Button(text='Hello world',
         size_hint=(0.2 ,0.2),
         pos_hint={'x':.2, 'y':.2 },
         background_normal='',
         background_color=(1, 1, 0, 0.8)
         )

      # adding button widget
      Flt.add_widget(btn)

      return Flt

# Run the app
FloatApp().run()

输出

运行上面的代码,我们将得到以下结果:

更新于:2021年1月12日

515 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告