Python & Kivy - 显示/隐藏框

Posted

技术标签:

【中文标题】Python & Kivy - 显示/隐藏框【英文标题】:Python & Kivy - Show / Hide Box 【发布时间】:2019-07-07 00:18:43 【问题描述】:

我构建了一个应用程序,它正在拍照并转到另一个空白屏幕并在后台运行我的主要代码。当我的主代码处于第一个 if 条件时,我想在空屏幕中显示一个文本输入框;并在代码处于第二个 if 条件时隐藏该框。我的代码在下面。我为我的问题写了“blablabla”来表达不必要的长篇大论。

class CheckScreen(Screen):
    def deneme(self):

    #MY MAIN CODE
    #...

        if(BLABLABLA)
            self.isShownMenu = BooleanProperty(True)
        else
            self.isShownMenu = BooleanProperty(False)

GUI = Builder.load_string("""

#BLABLABLA1
#...

<SingleLineTextInput@TextInput>:
    pos_hint: 'center_x': .5, 'center_y': .4
    size_hint: 0.5, 0.05
    multiline: False
<CheckScreen>:

    #BLABLABLA2
    #...

    SingleLineTextInput:
        opacity: 1 if root.isShownMenu else 0
""")

class TestCamera(App):

def build(self):
    return GUI

TestCamera().run()

当我运行它时,即使我在条件下将 True 更改为 False,应用程序也会始终显示文本输入。我的问题在哪里?

【问题讨论】:

您是否检查过if - else 条件是否有效?您是否尝试在每个条件中添加一些 print 语句? 是的,我很确定,因为我的主要代码在没有应用程序的情况下也可以工作 尝试将 self.isShownMenu = BooleanProperty(True) 更改为 self.isShownMenu = True,同样为 False 【参考方案1】:

您的 BooleanProperty 需要在类级别定义:

class CheckScreen(Screen):
    isShownMenu = BooleanProperty(True)

根据需要使用TrueFalse。然后在您的代码中仅引用self.isShownMenu,例如:

    if(BLABLABLA)
        self.isShownMenu = True
    else
        self.isShownMenu = False

【讨论】:

以上是关于Python & Kivy - 显示/隐藏框的主要内容,如果未能解决你的问题,请参考以下文章

Python Kivy:在文本输入字段中隐藏虚拟键盘

在kivy中隐藏android键盘

Kivy 虚拟键盘未显示

Python Kivy - 在另一个屏幕上显示动态结果

使 Kivy TextInput 框架不可见但显示文本

如何使用 kivy 和 python 在屏幕上显示文件的内容?