【发布时间】:2017-10-26 11:28:23
【问题描述】:
我在 Kivy 中使用 SlideTransition 时遇到了滑动方向问题。在实现特定于按钮的滑动方向时,方向似乎只是偶尔正常工作。但是,在其他情况下它会失败。
要重现问题,请随意使用以下代码:
main.py:
from kivy.app import App # Use of fields and methods of Kivy
from kivy.lang import Builder
from kivy.uix.screenmanager import ScreenManager, Screen, FadeTransition
class Screen1(Screen):
pass
class Screen2(Screen):
pass
class Screen3(Screen):
pass
class ScreenManagement(ScreenManager):
pass
presentation = Builder.load_file("style.kv")
class MyApp(App):
def build(self):
return presentation
myApp = MyApp()
myApp.run()
style.kv:
#: import SlideTransition kivy.uix.screenmanager.SlideTransition
ScreenManagement:
transition: SlideTransition()
Screen1:
Screen2:
Screen3:
<Screen1>:
name: "screen1"
FloatLayout:
Label:
text: "Screen 1"
pos_hint: {"top": 1.0}
Button:
on_release:
app.root.current = "screen2"
app.root.transition = SlideTransition(direction="left")
size_hint: 0.5, 0.8/3
pos_hint: {"bottom": 0.8, "left": 1}
text: "Screen 2 (slide left)"
font_size: 30
<Screen2>:
name: "screen2"
FloatLayout:
Label:
text: "Screen 2"
pos_hint: {"top": 1.0}
Button:
on_release:
app.root.current = "screen1"
app.root.transition = SlideTransition(direction="right")
size_hint: 0.5, 0.8/3
pos_hint: {"top": 0.8, "right": 1}
text: "Screen 1 (slide right)"
font_size: 30
Button:
on_release:
app.root.current = "screen3"
app.root.transition = SlideTransition(direction="left")
size_hint: 0.5, 0.8/3
pos_hint: {"top": 0.8, "left": 1}
text: "Screen 3 (slide left)"
font_size: 30
<Screen3>:
name: "screen3"
FloatLayout:
Label:
text: "Screen 3"
pos_hint: {"top": 1.0}
Button:
on_release:
app.root.current = "screen1"
app.root.transition = SlideTransition(direction="right")
size_hint: 0.5, 0.8/3
pos_hint: {"top": 0.8, "left": 1}
text: "Screen 1 (slide right)"
font_size: 30
我遇到了以下问题:单击第一张幻灯片中的“幻灯片 2”和第二张幻灯片中的“幻灯片 3”后,两者都按指定向左消失,单击第三张幻灯片中的“幻灯片 1”会导致滑动方向“左”,虽然指定的方向是“右”。似乎有什么东西覆盖了滑动方向?
有没有人遇到过类似的问题并且知道如何解决?提前致谢!
【问题讨论】:
标签: python-3.x kivy kivy-language