1
私は暖房制御システムのコードを書いています。ラベルの文章を変更。 Python変数
私はちょうどWITHIN PYTHONからラベルテキストを変更できるようにしたいと思います。 これは、GUIコードではなく、メインのどこかにあることを意味しています。
import time
from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.label import Label
from kivy.uix.widget import Widget
from kivy.uix.boxlayout import BoxLayout
import multiprocessing
from kivy.properties import StringProperty
class Data (Widget):
top = StringProperty('hiii')
def __init__(self, **kwargs):
super(Widget, self).__init__(**kwargs)
global mydata
mydata=Data()
class myw (BoxLayout):
def __init__(self, **kwargs):
super(myw, self).__init__(**kwargs)
VERT = BoxLayout(orientation='vertical')
o = Label(text='Oben: ',
font_size=120)
m = Label(text='Mitte: ',
font_size=120)
u = Label(text='Unten: ',
font_size=120)
a = Label(text='Aussen: ',
font_size=120)
mydata.bind(top=o.setter('text'))
VERT.add_widget(o)
VERT.add_widget(m)
VERT.add_widget(u)
VERT.add_widget(a)
onoff = Button(text='Ein',
font_size=120,
size_hint=(0.3, 1))
self.add_widget(VERT)
self.add_widget(onoff)
class TutorialApp(App):
def build(self):
return myw()
if __name__ == "__main__":
try:
global myapp
myapp=TutorialApp()
app_runner=multiprocessing.Process(target=myapp.run)
app_runner.start()
time.sleep(3)
mydata.top='new value assigned'
print (mydata.top)
time.sleep(5)
app_runner.terminate()
except Exception as e:
print ('error occured', e)
は、私は意図的に私はコード(ここでは図示せず)の別の場所からアクセスすることができるように、kivyコード外の変数「マイデータ」を、宣言:
は、ここに私のMWEです。
私が知っています!しかし、それは私のために働かなかった... – eric
それは完璧に動作します。私が今見ているのは 'string = 'now changed''です。これは' RootWidget.string'とは異なる変数です。その変数を取得するには 'my_app.root.string = 'something''を使用します。それは変更する必要があります。しかし、あなたのコードは私にちょうど 'RuntimeError'と何か' freeze_support'について何かを与えてくれます... – KeyWeeUsr
はい、私はそのアプローチでもエラーを受け取ります...私は2回目の試みで元のコードを編集しました... – eric