Bubble 气泡 可以指定和箭头的方向以及显示图像 或者在Bubble 中添加其他的小部件
BubbleButton 基本与Button 一致
以下是一个使用Kivy实现Bubble和BubbleButton的示例:
from kivy.app import App from kivy.uix.button import Button from kivy.uix.bubble import Bubble from kivy.uix.image import Imageclass MyBubble(Bubble):passclass MyBubbleButton(Button):def __init__(self, **kwargs):super(MyBubbleButton, self).__init__(**kwargs)self.bubble = MyBubble()self.bubble.add_widget(Image(source='my_image.png'))self.bubble.arrow_pos = 'top_left'self.bubble.size_hint = (None, None)self.bubble.pos = (self.pos[0], self.pos[1]+self.height)self.bind(pos=self.update_bubble, size=self.update_bubble)def update_bubble(self, *args):self.bubble.pos = (self.pos[0], self.pos[1]+self.height)def on_press(self):self.bubble.open(self)def on_release(self):self.bubble.dismiss()class MyApp(App):def build(self):return MyBubbleButton(text='Click me')if __name__ == '__main__':MyApp().run()
在上面的代码中,我们创建了一个自定义的Bubble(MyBubble)和BubbleButton(MyBubbleButton)类。MyBubble 继承自 kivy.uix.bubble.Bubble,而 MyBubbleButton 继承自 kivy.uix.button.Button。在 MyBubbleButton 的构造函数中,我们实例化了一个 MyBubble 对象,并将其添加到 MyBubbleButton 中。我们还指定了箭头位置、大小和位置等属性,以及绑定了 MyBubbleButton 的位置和大小属性,以便在 MyBubbleButton 的位置和大小发生变化时更新气泡的位置。我们还为 MyBubbleButton 的 on_press 和 on_release 事件绑定了打开和关闭气泡的方法。
最后,在我们的应用程序类 MyApp 中,我们返回了一个 MyBubbleButton 对象,这将是我们应用程序的主要界面元素。
请注意,上面的代码假设我们有一个名为“my_image.png”的图像文件,它应该位于当前工作目录下。如果您要测试此代码,您需要将其保存为“main.py”,并将“my_image.png”文件放在同一目录中,然后在终端中运行以下命令:
python main.py
这将启动应用程序并显示一个带有“Click me”文本的按钮。当您单击按钮时,它将打开一个气泡,其中包含一个包含“my_image.png”的图像。当您释放按钮时,气泡将关闭。
DropDown 下拉列表 常用于创建下拉框 其内可以包含多数类型的小部件
Popup弹窗 可以创建一个弹出式的弹窗 默认覆盖整个 “父窗口”
FileChooser 显示路径的文件夹和文件
Spinner 选择框 快速创建下拉框
RecycleView 遍历显示数据 在其内可生成大量小部件用来显示遍历的数据
TabbedPanel 选项面板 具有标题区域和内容区域
VideoPlayer 视频播放 播放视频并让用户控制播放 暂停音量 和位置
VKeyboard 键盘 kivy 的屏幕键盘 其让操作对用户透明 不建议直接使用该小部件