Python 在kivy中用运动交换屏幕

Python 在kivy中用运动交换屏幕,python,kivy,Python,Kivy,是否可以通过移动而不是按按钮来交换屏幕?我是在移动应用程序的上下文中询问的,用户通常期望这种行为发生在哪里。您可以使用widget。例如: from kivy.app import App from kivy.uix.boxlayout import BoxLayout from kivy.lang import Builder Builder.load_string(""" <MyWidget>: Carousel: BoxLayout:

是否可以通过移动而不是按按钮来交换屏幕?我是在移动应用程序的上下文中询问的,用户通常期望这种行为发生在哪里。

您可以使用widget。例如:

from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.lang import Builder

Builder.load_string("""
<MyWidget>:
    Carousel:
        BoxLayout:
            orientation: 'vertical'
            Label:
                text: "Screen 1"
            Label:
                text: "Some text"
        BoxLayout:
            orientation: 'vertical'
            Label:
                text: "Screen 2"
            BoxLayout:
                Button:
                    text: "1"
                Button:
                    text: "2"
                Button:
                    text: "3"
                Button:
                    text: "4"
        BoxLayout:
            orientation: 'vertical'
            Label:
                text: "Screen 3"
            Label:
                text: "Some other text"
""")

class MyWidget(BoxLayout):
    pass

class MyApp(App):
    def build(self):
        return MyWidget()

if __name__ == '__main__':
    MyApp().run()
从kivy.app导入应用
从kivy.uix.boxlayout导入boxlayout
从kivy.lang导入生成器
生成器。加载\u字符串(“”)
:
旋转木马:
盒子布局:
方向:“垂直”
标签:
文本:“屏幕1”
标签:
文本:“一些文本”
盒子布局:
方向:“垂直”
标签:
文本:“屏幕2”
盒子布局:
按钮:
案文:“1”
按钮:
案文:“2”
按钮:
案文:“3”
按钮:
案文:“4”
盒子布局:
方向:“垂直”
标签:
文本:“屏幕3”
标签:
文本:“其他文本”
""")
类MyWidget(BoxLayout):
通过
类别MyApp(应用程序):
def生成(自):
返回MyWidget()
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
MyApp().run()
您可以使用小部件。例如:

from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.lang import Builder

Builder.load_string("""
<MyWidget>:
    Carousel:
        BoxLayout:
            orientation: 'vertical'
            Label:
                text: "Screen 1"
            Label:
                text: "Some text"
        BoxLayout:
            orientation: 'vertical'
            Label:
                text: "Screen 2"
            BoxLayout:
                Button:
                    text: "1"
                Button:
                    text: "2"
                Button:
                    text: "3"
                Button:
                    text: "4"
        BoxLayout:
            orientation: 'vertical'
            Label:
                text: "Screen 3"
            Label:
                text: "Some other text"
""")

class MyWidget(BoxLayout):
    pass

class MyApp(App):
    def build(self):
        return MyWidget()

if __name__ == '__main__':
    MyApp().run()
从kivy.app导入应用
从kivy.uix.boxlayout导入boxlayout
从kivy.lang导入生成器
生成器。加载\u字符串(“”)
:
旋转木马:
盒子布局:
方向:“垂直”
标签:
文本:“屏幕1”
标签:
文本:“一些文本”
盒子布局:
方向:“垂直”
标签:
文本:“屏幕2”
盒子布局:
按钮:
案文:“1”
按钮:
案文:“2”
按钮:
案文:“3”
按钮:
案文:“4”
盒子布局:
方向:“垂直”
标签:
文本:“屏幕3”
标签:
文本:“其他文本”
""")
类MyWidget(BoxLayout):
通过
类别MyApp(应用程序):
def生成(自):
返回MyWidget()
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
MyApp().run()

我认为这可能是一种更好的方法:

from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.carousel import Carousel
from kivy.lang import Builder

Builder.load_string("""
<MyCarousel>:
    BoxLayout:
        orientation: 'vertical'

        Label:
            text: "Screen 1"
        Label:
            text: "Some text"

    BoxLayout:
        orientation: 'vertical'

        Label:
            text: "Screen 2"
        BoxLayout:
            Button:
                text: "1"
            Button:
                text: "2"
            Button:
                text: "3"
            Button:
                text: "4"

    BoxLayout:
        orientation: 'vertical'

        Label:
            text: "Screen 3"
        Label:
            text: "Some other text"
""")

class MyCarousel(Carousel):
    pass

class MyApp(App):
    def build(self):
        return MyCarousel()

if __name__ == '__main__':
    MyApp().run()
从kivy.app导入应用
从kivy.uix.boxlayout导入boxlayout
从kivy.uix.carousel导入carousel
从kivy.lang导入生成器
生成器。加载\u字符串(“”)
:
盒子布局:
方向:“垂直”
标签:
文本:“屏幕1”
标签:
文本:“一些文本”
盒子布局:
方向:“垂直”
标签:
文本:“屏幕2”
盒子布局:
按钮:
案文:“1”
按钮:
案文:“2”
按钮:
案文:“3”
按钮:
案文:“4”
盒子布局:
方向:“垂直”
标签:
文本:“屏幕3”
标签:
文本:“其他文本”
""")
类别MyCarousel(旋转木马):
通过
类别MyApp(应用程序):
def生成(自):
返回MyCarousel()
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
MyApp().run()

显然,旋转木马的行为与其他小部件不同,因为它没有默认大小100100。

我认为这可能是一种更好的方式:

from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.carousel import Carousel
from kivy.lang import Builder

Builder.load_string("""
<MyCarousel>:
    BoxLayout:
        orientation: 'vertical'

        Label:
            text: "Screen 1"
        Label:
            text: "Some text"

    BoxLayout:
        orientation: 'vertical'

        Label:
            text: "Screen 2"
        BoxLayout:
            Button:
                text: "1"
            Button:
                text: "2"
            Button:
                text: "3"
            Button:
                text: "4"

    BoxLayout:
        orientation: 'vertical'

        Label:
            text: "Screen 3"
        Label:
            text: "Some other text"
""")

class MyCarousel(Carousel):
    pass

class MyApp(App):
    def build(self):
        return MyCarousel()

if __name__ == '__main__':
    MyApp().run()
从kivy.app导入应用
从kivy.uix.boxlayout导入boxlayout
从kivy.uix.carousel导入carousel
从kivy.lang导入生成器
生成器。加载\u字符串(“”)
:
盒子布局:
方向:“垂直”
标签:
文本:“屏幕1”
标签:
文本:“一些文本”
盒子布局:
方向:“垂直”
标签:
文本:“屏幕2”
盒子布局:
按钮:
案文:“1”
按钮:
案文:“2”
按钮:
案文:“3”
按钮:
案文:“4”
盒子布局:
方向:“垂直”
标签:
文本:“屏幕3”
标签:
文本:“其他文本”
""")
类别MyCarousel(旋转木马):
通过
类别MyApp(应用程序):
def生成(自):
返回MyCarousel()
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
MyApp().run()

显然,旋转木马的行为与其他小部件不同,因为它没有默认大小100100。

你是说手势吗?如果是这样,看看这个:嘿,你能把接受的答案换回尼卡金吗?尼卡金把你指给一个旋转木马,这是最重要的洞察力。我只是稍微修改了一下代码。你是说手势吗?如果是这样,看看这个:嘿,你能把接受的答案换回尼卡金吗?尼卡金把你指给一个旋转木马,这是最重要的洞察力。我只是稍微调整了一下代码。