首页 > 解决方案 > 如何摆脱这个 TypeInput 错误?

问题描述

抱歉,我对此真的很陌生,所以我不了解某些语法,所以我尝试运行此代码以查看是否可以让应用程序通过文本输入返回 2 个变量,但此错误不断弹出

from kivy.app import App
from kivy.uix.gridlayout import GridLayout
from kivy.uix.label import Label
from kivy.uix.image import Image
from kivy.uix.button import Button
from kivy.uix.textinput import TextInput

class SayHello(App):
    def build(self):
        self.window = GridLayout()
        self.window.cols = 1
        #add widgets to window

        # image widget
        self.window.add_widget(Image(source="man.jpg"))
        #Label widget
        self.matsize = Label(text="input size of material?")
        self.window.add_widget(self.matsize)
        # text input widget
        self.user = TextInput(multiline=False)
        self.window.add_widget(self.user)
        self.user2 = TextInput(multiline=False)
        self.window.add_widget(self.user2)

        #button widget
        self.button = Button(text="GREET")
        self.button.bind(on_press=self.callback)
        self.window.add_widget(self.button)

        return self.window

    def callback(self, instance):
        self.matsize.text = "your material sizer is " + self.user + "x"

if __name__ == "__main__":
    SayHello().run()

以下是错误

File "c:\Users\Abu\Documents\Py Noob\Shop calculator.py", line 33, in callback      
     self.matsize.text = "your material sizer is " + self.user + "x"
 TypeError: can only concatenate str (not "TextInput") to str

我得到的任何帮助将不胜感激

标签: python-3.xkivy

解决方案


def callback(self, instance):
        self.matsize.text = "your material sizer is " + self.user + "x"

self.user是一个TextInputstr + TextInput + str看起来不太好。也许您想使用TextInput.

因此,将您的代码替换为:

def callback(self, instance):
        self.matsize.text = "your material sizer is " + self.user.text + "x"

推荐阅读