- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我的应用程序从数据库中获取数据并将其存储到 Python 变量中。下面的代码是一个简化版本,其中有两个屏幕。第一个屏幕有两个按钮,第二个屏幕有一个标签和一个后退按钮。第二个屏幕上的标签文本将根据按下的按钮而改变。
运行时,标签设置为 StringProperty 的值,即“Test”。单击其中一个按钮时,将运行 ChangeScreen 函数并计算出正确的新标签。第二个运行的 LabelUpdater 函数应该更改字符串属性但没有。我该如何解决这个问题?谢谢<3
python :
import kivy
from kivy.app import App
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.properties import StringProperty
class DemoScreen1(Screen):
def ChangeScreen(self, button_text):
if button_text == "Button 1":
new_label = "This is the new label when button 1 is pressed"
DemoScreen2.LabelUpdater(new_label)
else:
new_label2 = "This is the new label when button 2 is pressed"
DemoScreen2.LabelUpdater(new_label2)
self.parent.current = "demoscreen2"
class DemoScreen2(Screen):
screen2_label = StringProperty("Test")
def LabelUpdater(NEW_LABEL):
screen2_label = StringProperty(NEW_LABEL)
class AppScreenManager(ScreenManager):
pass
class Tester(App):
pass
if __name__ == '__main__':
Tester().run()
基维:
AppScreenManager:
DemoScreen1:
DemoScreen2:
<DemoScreen1>:
name: "demoscreen1"
orientation: "vertical"
GridLayout:
rows: 2
Button:
id: Button1
text: "Button 1"
on_release: root.ChangeScreen(Button1.text)
Button:
id: Button2
text: "Button 2"
on_release: root.ChangeScreen(Button2.text)
<DemoScreen2>:
name: "demoscreen2"
orientation: "vertical"
GridLayout:
rows:2
Label:
text: root.screen2_label
Button:
text:"Back"
on_release: app.root.current = "demoscreen1"
最佳答案
使用 ids
并通过 AppScreenManager
也就是 ScreenManager 进行引用。
self.parent.ids.screen2.screen2_label = new_label
请参阅下面的完整示例。
import kivy
from kivy.app import App
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.properties import StringProperty
class DemoScreen1(Screen):
def ChangeScreen(self, button_text):
if button_text == "Button 1":
new_label = "This is the new label when button 1 is pressed"
print('Palim')
#DemoScreen2.LabelUpdater(new_label)
self.parent.ids.screen2.screen2_label = new_label
else:
new_label2 = "This is the new label when button 2 is pressed"
self.parent.ids.screen2.screen2_label = new_label2
#DemoScreen2.LabelUpdater(new_label2)
self.parent.current = "demoscreen2"
class DemoScreen2(Screen):
screen2_label = StringProperty("Test")
def LabelUpdater(NEW_LABEL):
screen2_label = StringProperty(NEW_LABEL)
class AppScreenManager(ScreenManager):
pass
class Tester(App):
pass
if __name__ == '__main__':
Tester().run()
千伏
AppScreenManager:
DemoScreen1:
id: screen1
DemoScreen2:
id: screen2
<DemoScreen1>:
name: "demoscreen1"
orientation: "vertical"
GridLayout:
rows: 2
Button:
id: Button1
text: "Button 1"
on_release: root.ChangeScreen(Button1.text)
Button:
id: Button2
text: "Button 2"
on_release: root.ChangeScreen(Button2.text)
<DemoScreen2>:
name: "demoscreen2"
orientation: "vertical"
GridLayout:
rows:2
Label:
text: root.screen2_label
Button:
text:"Back"
on_release: app.root.current = "demoscreen1"
关于python - Kivy - 如何在不同的屏幕上更改 StringProperty 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46735007/
我正在稍微切换我的数据模型。我打算将 'repeated=True' 添加到当前存在的 stringProperty。我想知道这会不会搞砸什么? 最佳答案 它应该可以工作,除非您有 None 值。单例
我正在使用javafx。 我必须将 Object 类型的变量转换为 StringProperty 类型。 Object v = "var"; StringProperty var = (StringP
我想更新 JavaFX 应用程序中的标签,以便文本在方法运行时更改多次: private void analyze(){ labelString.setValue("Analyzing");
当我尝试根据输入更新值时,我遇到了 Kivy StringProperty 变量的问题。 让它变得简单一点,这样我也能理解(我对此有点陌生)。 TextTime1 = StringProperty()
我想实现一个 kivy 应用程序,它有两个屏幕(由屏幕管理器管理)。在第一个屏幕(称为 LoginScreen)上有两个 TextInput 字段和一个按钮。在第二个屏幕上,我有两个标签,我想显示在第
我对 JavaFX 中的绑定(bind)功能有疑问。我想要的是绑定(bind) 2 个字符串属性。但是它们的值不应该相等。 让我举个例子: 我有一个 StringProperty,它代表我的应用程序中
我正在用 JavaFX 开发一个应用程序,我想用一个 Person 表示一个人的信息类(class)。我遇到了一个教程,其中一个人的名字被表示为 StringProperty而不是 String .我
几天来我一直在努力解决这个问题,我已经阅读了有关线程、MVC、绑定(bind)、接口(interface)和许多有趣的东西,但我就是无法以适当的方式将它们全部放在一起来完成这项工作。 我只想列出 mi
我有一个具有 String 重复属性的 ndb 模态。我正在尝试检索所有具有空值的实体。但是 NDB 查询返回空。 class A(ndb.model): name = ndb.StringP
我的应用程序从数据库中获取数据并将其存储到 Python 变量中。下面的代码是一个简化版本,其中有两个屏幕。第一个屏幕有两个按钮,第二个屏幕有一个标签和一个后退按钮。第二个屏幕上的标签文本将根据按下的
我有一个关于多线程和 StringProperty 绑定(bind)的问题。 我有一个 CacheManager 类,它包含一个 Thread,它使用服务器上的更改更新我的缓存。现在,我想用文本和进度
我正在使用 JavaFx TableView 并发现有一些类可以使用 TableView,例如 SimpleStringProperty、StringProperty、SimpleBooleanPro
有没有一种简单的方法来绑定(bind) StringProperty 对象的串联? 这是我想做的事情: TextField t1 = new TextField(); TextField t2 = n
我正在尝试在 TableView 中显示一些信息,但遇到了一些无法解决的问题。 这是我正在尝试做的事情: 我有一个 Room 对象: public class Room { private S
我正在使用 PyCrypto 生成安全 key 哈希。我想存储我生成的一个或多个部分 key 。每个部分键的形式为 \x0f|4\xcc\x02b\xc3\xf8\xb0\xd8\xfc\xd4\x9
我有一个 kivy 标签绑定(bind)到 StringProperty() 。我正在尝试用 Python 从中取出字符串。 class Screen1(Screen): food_label
假设我的 POJO 仅限于以下内容: public class TestPojo { StringProperty myField; public TestPojo(){} p
我有 StringProperty,它由两个不断变化的字母(例如:06)组成。我有两个标签,我想将它们绑定(bind)到 StringProperty 的每个字母,例如 label1="0" 和 la
它们之间的主要区别是什么?您也可以谈谈结构化属性吗?他们都保存了多个值,但我无法理解其中的区别。 最佳答案 db.StringListProperty() 在传统的 Datastore API 中用于
在任何情况下,GAE 数据存储可能会将属性类型从 StringProperty 更改为 TextProperty(实际上忽略模型定义)? 考虑以下情况(简化): class MyModel(db.Mo
我是一名优秀的程序员,十分优秀!