Python 为什么';Kivy ActionBar不能正常工作吗?
我正试图利用kivy pingball和动作栏示例的创意创建一个动作栏。Python 为什么';Kivy ActionBar不能正常工作吗?,python,python-3.x,error-handling,kivy,Python,Python 3.x,Error Handling,Kivy,我正试图利用kivy pingball和动作栏示例的创意创建一个动作栏。 这是我的代码: from kivy.app import App from kivy.uix.widget import Widget from kivy.lang import Builder from kivy.core.window import Window Builder.load_string(""" <TitleBar>: ActionBar: pos_hint: {'t
这是我的代码:
from kivy.app import App
from kivy.uix.widget import Widget
from kivy.lang import Builder
from kivy.core.window import Window
Builder.load_string("""
<TitleBar>:
ActionBar:
pos_hint: {'top':1}
ActionView:
use_separator: True
ActionPrevious:
title: 'Action Bar'
with_previous: False
ActionOverflow:
ActionButton:
icon: 'atlas://data/images/defaulttheme/audio-volume-high'
ActionButton:
important: True
text: 'Important'
ActionButton:
text: 'Btn2'
ActionButton:
text: 'Btn3'
ActionButton:
text: 'Btn4'
ActionGroup:
text: 'Group1'
ActionButton:
text: 'Btn5'
ActionButton:
text: 'Btn6'
ActionButton:
text: 'Btn7'
""")
class TitleBar(Widget):
pass
class TrialApp(App):
def build(self):
Window.size=(875,575)
Window.borderless=True
return TitleBar()
TrialApp().run()
从kivy.app导入应用
从kivy.uix.widget导入widget
从kivy.lang导入生成器
从kivy.core.window导入窗口
生成器。加载\u字符串(“”)
:
操作栏:
位置提示:{'top':1}
ActionView:
使用分隔符:True
以前的行动:
标题:“动作栏”
与_previous一起:False
ActionOverflow:
操作按钮:
图标:'atlas://data/images/defaulttheme/audio-volume-high'
操作按钮:
重要提示:正确
文本:“重要”
操作按钮:
文本:“Btn2”
操作按钮:
文本:“Btn3”
操作按钮:
文本:“Btn4”
行动小组:
文本:“组1”
操作按钮:
文本:“Btn5”
操作按钮:
文本:“Btn6”
操作按钮:
文本:“Btn7”
""")
类标题栏(小部件):
通过
类TrialApp(应用程序):
def生成(自):
Window.size=(875575)
Window.borderless=True
返回标题栏()
TrialApp().run()
尽管使用了pos\u hint:{'top':1}
,但为什么操作栏会排到底部?Python 3.7.5 Windows 10当您阅读的文档时,您得到的不是
Widget
,而是需要使用FloatLayout
因此,代码必须是:
from kivy.uix.floatlayout import FloatLayout
class TitleBar(FloatLayout):
pass
应用程序的根小部件
是一个简单的小部件
,它不打算用作容器,也不支持像pos\u hint
这样的东西。尝试更改:
class TitleBar(Widget):
到
这使您的根小部件成为一个浮动布局,它将处理位置提示谢谢您,我在30秒前找到了:)并发布了答案。您如何使操作按钮执行操作?操作按钮只是按钮的扩展,所以你可以像一个普通的按钮一样指定“按下”或“释放”上的。它没有“在移动”或“在悬停”之类的吗?我想没有。KivyMD有一个悬停行为
,您可以使用它。您可以使用类似于Window.bind(mouse\u pos=self.on\u motion)
和collide\u point()
的工具来检查鼠标位置是否在感兴趣的小部件上。
class TitleBar(FloatLayout):