【发布时间】:2016-04-04 17:48:51
【问题描述】:
我是 Kivy 的新手,我正在尝试制作一个应用程序来计算字符串中的单词并在新的弹出窗口中显示单词的数量,即使使用 str(),我也会不断收到此错误消息。类型错误:预期的字符串或缓冲区 这是代码:
from kivy.app import App
from kivy.uix.popup import Popup
from kivy.uix.label import Label
from kivy.uix.boxlayout import BoxLayout
import re
class CountRoot(BoxLayout):
def clk(self, text_input):
text = Label(text="Hello, {}!".format(text_input))
res = re.findall("(\S+)", text)
nw = Popup(title="Our Title!", content=res,size_hint=(.7, .7))
nw.open()
class CountApp(App):
def build(self):
return CountRoot()
if __name__ == "__main__":
CountApp().run()
这里是 kivy 文件:
<CountRoot>:
orientation: "vertical"
padding: root.width * .02, root.height * .02
spacing: "10dp"
TextInput:
id: text_input
hint_text: "Enter Text"
font_size: "30dp"
Button:
text: "Press Me"
on_release: root.clk(text_input.text)
【问题讨论】:
-
错误信息告诉你错误在哪一行。
-
什么是
res?它是一个字符串吗?你确定吗?你检查过吗? documentation says it's a list of strings. -
res 是 ''re.findall("(\S+)", text)'' 的结果,它是一个数字 (int)
-
您是否应该将
int传递给content? -
是的,res(数字)应该显示在那个弹出窗口上