我是kivy和python的新手。
我有,output = StringProperty('')和另一个名为' text'的字符串。 现在我想转换"输出" to" text"然后对普通的python字符串执行进一步的操作。
"输出"和"文字"有两个不同的类别。
请帮助我进行此转换。我尝试了所有可能的解决方案,但我总是得到" AttributeError"或" NameError"。
提前谢谢。
这是代码部分
这是"输出"字符串 -
class RecordButton(Button):
# String Property to Hold output for publishing by Textinput
output = StringProperty('')
def record(self):
# GUI Blocking Audio Capture
with m as source:
audio = r.listen(source)
try:
# recognize speech using Google Speech Recognition
value = r.recognize_google(audio)
self.output = "You said \"{}\"".format(value)
except sr.UnknownValueError:
self.output = ("Oops! Didn't catch that")
except sr.RequestError as e:
self.output = ("Uh oh! Couldn't request results from Google Speech Recognition service; {0}".format(e))
这是" original_text"字符串 -
def main(self):
"""main function"""
original_text =????????
if len(original_text) > 600:
print("You can't check more than 600 characters at a time.")
quit()
fixed_text = original_text
results = GrammarButton.get_ginger_result(self,original_text)
# Correct grammar
if(not results["LightGingerTheTextResult"]):
print("Good English :)")
quit()
答案 0 :(得分:0)
使用 ObjectProperty 连接类RecordButton ,您可以在 class Main 中引用它。有关详细信息,请参阅下面的小示例。
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.properties import StringProperty, ObjectProperty
class OutputKivyStringProperty(BoxLayout):
output = StringProperty('Kivy StringProperty')
class RootWidget(BoxLayout):
output_obj = ObjectProperty(None)
def __init__(self, **kwargs):
super(RootWidget, self).__init__(**kwargs)
output_obj = OutputKivyStringProperty()
text = output_obj.output
print("text={}".format(text))
class TestApp(App):
def build(self):
return RootWidget()
if __name__ == "__main__":
TestApp().run()