我构建了一个正在拍照的应用程序,然后转到另一个空屏幕并在后台运行我的主代码。我想在空屏幕中显示一个文本输入框,而我的主代码处于第一个 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,应用程序也总是显示文本输入。我的问题在哪里?
您的布尔属性需要在类级别定义:
class CheckScreen(Screen):
isShownMenu = BooleanProperty(True)
根据需要使用True
或False
。然后在你的代码中只引用self.isShownMenu
,比如:
if(BLABLABLA)
self.isShownMenu = True
else
self.isShownMenu = False