Python Kivy,我是不是搞错了?

2024-10-02 04:27:05 发布

您现在位置:Python中文网/ 问答频道 /正文

目前,我在SHeditorMain中有一个Floatlayout,在SHeditorMain类中,我声明了一组小部件(按钮、弹出窗口、标签等…)并使用它们self.add\u小部件添加它们。你知道吗

现在我想创建一个新窗口,在FloatLayout内部/上方打开,但我似乎无法让它工作。到目前为止,我看到的关于多个窗口的所有示例都是使用App作为主类在布局中创建小部件。有什么建议或者我必须重新构造代码吗?你知道吗

class SHeditorMain(FloatLayout):
    def __init__(self, **kwargs):
        super(SHeditorMain, self).__init__(**kwargs)as
        self.add_widget(blabla)
        self.add_widget(blabla)
        self.add_widget(blabla)
        self.add_widget(blabla)
        self.dbconnection = DBconnection()

        #declare popups etc


    def functionEvents(self, instance):
        yaddayadda

    def functionEvents(self, instance):
        yaddayadda

    def functionEvents(self, instance):
        yaddayadda


class SHeditor(App):
    def build(self):
        self.root = SHeditorMain()
        return self.root

Tags: instanceselfaddappinit部件defwidget
1条回答
网友
1楼 · 发布于 2024-10-02 04:27:05

请阅读this answer关于多个“窗口”以及为什么不需要它。我可以建议你让kivy窗口最大化,并使用ModalView作为一个伪窗体,可以拖动,并有一些按钮,将关闭它。更多的控制一切,更干净的代码,初学者友好。创建一个从ModalView继承的自定义小部件,它的功能由您决定。你知道吗

你可以把情态动词放在任何你想放的地方-看看弹出式源代码中的repo位置是如何设置的。基本上,您将得到一个自定义弹出窗口,您可以在不破坏原始小部件的情况下控制它。你知道吗

另一种方法可能是使用ScreenManager(或PageLayout、Carousel、xyz或其他小部件),它们提供类似于移动/演示的视图。你越早接触到kv语言,你就越早不难想象那些东西是从口袋里掏出来的,例如,你看到一个花哨的应用程序,你可以打开kivy-designer或者更多的控制/更少的花哨去KivyCatalog,只需键入你看到的内容,kvlang就是这么简单。你知道吗

情态动词示例:(创建窗口的旧尝试,如。。。something via Kivy=FloatLayout,分散(仅允许拖动)为“窗口”)

enter image description here

这让我得出这样的结论:如果你认为你需要多个窗口或者另一个窗口会很好,不管是什么原因,但是你不确定它是否能工作或者是其他什么-你实际上没有,你是在过度复杂的事情,这会把你的注意力从代码的重要部分转移到用户界面上。你知道吗

(PS,我会编辑上面提到的答案,但在这个问题上用户有一个更复杂的问题)

相关问题 更多 >

    热门问题