如何将微调器值设置为等于kivy中python方法的输出列表

如何将微调器值设置为等于kivy中python方法的输出列表,python,user-interface,kivy,spinner,kivy-language,Python,User Interface,Kivy,Spinner,Kivy Language,因此,我正在构建一个应用程序,该应用程序给定一个输入网站,允许用户选择一个标签(例如div、body、article)、一个属性(例如class、style、id)和一个属性值,并输出相关网站的相关HTML代码。现在,在kivy应用程序的一个屏幕中,我需要让我的微调器(id:tag在代码中)有一个网站中所有可能标记的列表。所有可能标记的列表是名为updateTagSpinner 代码说明了我试图做的事情,它返回了一个AssertionError。我不知道该怎么办,也不知道如何解决这个问题。任何帮

因此,我正在构建一个应用程序,该应用程序给定一个输入网站,允许用户选择一个标签(例如div、body、article)、一个属性(例如class、style、id)和一个属性值,并输出相关网站的相关HTML代码。现在,在kivy应用程序的一个屏幕中,我需要让我的微调器(
id:tag
在代码中)有一个网站中所有可能标记的列表。所有可能标记的列表是名为
updateTagSpinner

代码说明了我试图做的事情,它返回了一个
AssertionError
。我不知道该怎么办,也不知道如何解决这个问题。任何帮助都将不胜感激:)

干杯

代码
从kivy.app导入应用
从kivy.uix.screenmanager导入screenmanager,屏幕
从kivy.lang导入生成器
从kivy.properties导入ObjectProperty
类主窗口(屏幕):
通过#假设这里一切正常
#第二个窗口是我遇到问题的屏幕
#标签列表是标签列表(updateTagSpinner工作正常)
#storeUrl.txt只是有问题的URL
第二类窗口(屏幕):
标记=对象属性(无)
def urlaccess(自):
以open(“storeUrl.txt”、“r”)作为f:
url=f.read()
返回url
def populateTags(自我,url):
tags\u list=HTMLReturner.tagRetriever(url)
返回标签列表
def updateTagSpinner(自):
self.tag.text='tag Type'
sw=第二窗口()
url2scrape=sw.urlaccess()
标签列表=sw.populateTags(url2scrape)
返回标签列表
类WindowManager(屏幕管理器):
通过
类别MyApp(应用程序):
def生成(自):
返回Builder.load\u文件('my.kv')
如果名称=“\uuuuu main\uuuuuuuu”:
MyApp().run()
我的千伏
WindowManager:
主窗口:
第二窗口:
姓名:“第一”
网格布局:
科尔斯:1
选择:选择
url:url
标签:
文本:“开发者刮板(EY)”
字体大小:40
位置提示:{“中心”:(0.5,0.95)}
网格布局:
科尔斯:2
标签:
文本:“URL”
字体大小:24
文本输入:
id:url
字体大小:14
多行:正确
微调器:
id:选择
值:[“标题”、“URL”、“图像”、“自定义”]
文本:“刮削类型”
按钮:
id:btn
尺码:100,44
pos_提示:{“x”:0.87,“top”:0.08}
文本:“继续”
发布时:
root.actionURL(url.text)如果choice.text==“url”否则无
root.actionHEADING(url.text)如果choice.text==“headers”否则无
root.actionIMG(url.text)如果choice.text==“Images”否则无
app.root.current=“second”if choice.text==“Custom”else“first”
root.filewriter(url.text)如果choice.text==“Custom”否则无
root.manager.transition.direction=“左”
姓名:“第二”
标签:标签
网格布局:
科尔斯:1
标签:
文本:“自定义设置”
字体大小:25
网格布局:
科尔斯:2
标签:
文本:“标记类型”
字体大小:14
微调器:
id:标签
文本:“标记类型”
值:root.updateTagSpinner()
标签:
文本:“属性类型”
字体大小:14
微调器:
id:属性
值:['a'、'b'、'c'、'd']
文本:“附件类型”
标签:
文本:“属性值”
字体大小:14
文本输入:
id:value\u bute
字体大小:14
多行:False
按钮:
文本:“返回”
发布时:
app.root.current=“第一”
root.manager.transition.direction=“左”
按钮:
文本:“显示代码”
发布时:
app.root.current=“第一”
root.manager.transition.direction=“左”
断言错误
回溯(最近一次呼叫最后一次):
文件“C:\Users\saxon\Anaconda3\lib\site packages\kivy\lang\builder.py”,第692行,在应用规则中
rctx['id'])
文件“C:\Users\saxon\Anaconda3\lib\site packages\kivy\lang\builder.py”,第254行,位于create\U处理程序中
原因(肺结核)
kivy.lang.builder.BuilderException:解析器:文件“C:\Users\saxon\PycharmProjects\PythonMobileApplication\my.kv”,第60行:
...
58:id:tag
59:文本:“标记类型”
>>60:值:root.updateTagSpinner()
61:标签:
62:文本:“属性类型”
...
断言者错误:
文件“C:\Users\saxon\Anaconda3\lib\site packages\kivy\lang\builder.py”,第249行,在create\u处理程序中
返回eval(值,idmap),绑定列表
文件“C:\Users\saxon\PycharmProjects\PythonMobileApplication\my.kv”,第60行,在
值:root.updateTagSpinner()
文件“C:/Users/saxon/PycharmProjects/PythonMobileApplication/flayoutapp.py”,第75行,在updateTagSpinner中
sw=第二窗口()
文件“C:\Users\saxon\Anaconda3\lib\site packages\kivy\uix\relativelayout.py”,第265行,在uu init中__
超级(相对功率、自功率)。\初始功率(**kw)
文件“C:\Users\saxon\Anaconda3\lib\site packages\kivy\uix\floatlayout.py”,第65行,在\uuu init中__
超级(FloatLayout,self)。\uuuuuu初始化(**kwargs)
文件“C:\Users\saxon\Anaconda3\lib\site packages\kivy\uix\layout.py”,第76行,在\uuu init中__
超级(布局,自我)。\uuuuu初始化(**kwargs)
文件“C:\Users\saxon\Anaconda3\lib\site packages\kivy\uix\widget.py”,第361行,在\uuu init中__
规则\u子项=规则\u子项)
文件“C:\Users\saxon\Anaconda3\lib\site pa
WindowManager:
    MainWindow:
    SecondWindow:

<MainWindow>
    name: "first"

    GridLayout:
        cols: 1

        choice: choice
        url: url
        Label:
            text: "Scraper for Developers (EY)"
            font_size: 40
            pos_hint: {"center": (0.5, 0.95)}
        GridLayout:
            cols: 2
            Label:
                text: "URL"
                font_size: 24
            TextInput:
                id: url
                font_size: 14
                multiline: True
        Spinner:
            id: choice
            values: ['Headings', 'URLs', 'Images', 'Custom']
            text: 'Scraping Type'
        Button:
            id: btn
            size: 100, 44
            pos_hint: {"x": 0.87, "top": 0.08}
            text: 'Continue'
            on_release:
                root.actionURL(url.text) if choice.text == "URLs" else None
                root.actionHEADING(url.text) if choice.text == "Headings" else None
                root.actionIMG(url.text) if choice.text == "Images" else None
                app.root.current = "second" if choice.text == "Custom" else "first"
                root.filewriter(url.text) if choice.text == "Custom" else None
                root.manager.transition.direction = "left"


<SecondWindow>
    name: "second"
    tag: tag
    GridLayout:
        cols:1
        Label:
            text: "CUSTOM SETTINGS"
            font_size: 25
        GridLayout:
            cols:2
            Label:
                text: "TAG TYPE"
                font_size: 14
            Spinner:
                id: tag
                text: 'Tag Type'
                values: root.updateTagSpinner()
            Label:
                text: "ATTRIBUTE TYPE"
                font_size: 14
            Spinner:
                id: attribute
                values: ['a','b','c','d']
                text: 'Att. Type'
            Label:
                text: "Value of Attribute"
                font_size: 14
            TextInput:
                id: value_bute
                font_size: 14
                multiline: False
            Button:
                text: "Go Back"
                on_release:
                    app.root.current = "first"
                    root.manager.transition.direction = "left"
            Button:
                text: "Show Me The Code"
                on_release:
                    app.root.current = "first"
                    root.manager.transition.direction = "left"
 Traceback (most recent call last):
   File "C:\Users\saxon\Anaconda3\lib\site-packages\kivy\lang\builder.py", line 692, in _apply_rule
     rctx['ids'])
   File "C:\Users\saxon\Anaconda3\lib\site-packages\kivy\lang\builder.py", line 254, in create_handler
     cause=tb)
 kivy.lang.builder.BuilderException: Parser: File "C:\Users\saxon\PycharmProjects\PythonMobileApplication\my.kv", line 60:
 ...
      58:                id: tag
      59:                text: 'Tag Type'
 >>   60:                values: root.updateTagSpinner()
      61:            Label:
      62:                text: "ATTRIBUTE TYPE"
 ...
 AssertionError: 
   File "C:\Users\saxon\Anaconda3\lib\site-packages\kivy\lang\builder.py", line 249, in create_handler
     return eval(value, idmap), bound_list
   File "C:\Users\saxon\PycharmProjects\PythonMobileApplication\my.kv", line 60, in <module>
     values: root.updateTagSpinner()
   File "C:/Users/saxon/PycharmProjects/PythonMobileApplication/flayoutapp.py", line 75, in updateTagSpinner
     sw = SecondWindow()
   File "C:\Users\saxon\Anaconda3\lib\site-packages\kivy\uix\relativelayout.py", line 265, in __init__
     super(RelativeLayout, self).__init__(**kw)
   File "C:\Users\saxon\Anaconda3\lib\site-packages\kivy\uix\floatlayout.py", line 65, in __init__
     super(FloatLayout, self).__init__(**kwargs)
   File "C:\Users\saxon\Anaconda3\lib\site-packages\kivy\uix\layout.py", line 76, in __init__
     super(Layout, self).__init__(**kwargs)
   File "C:\Users\saxon\Anaconda3\lib\site-packages\kivy\uix\widget.py", line 361, in __init__
     rule_children=rule_children)
   File "C:\Users\saxon\Anaconda3\lib\site-packages\kivy\uix\widget.py", line 469, in apply_class_lang_rules
     rule_children=rule_children)
   File "C:\Users\saxon\Anaconda3\lib\site-packages\kivy\lang\builder.py", line 538, in apply
     rule_children=rule_children)
   File "C:\Users\saxon\Anaconda3\lib\site-packages\kivy\lang\builder.py", line 554, in _apply_rule
     assert(rule not in self.rulectx)
def updateTagSpinner(self):
    self.tag.text = 'Tag Type'
    url2scrape = self.urlaccess()
    tags_list = self.populateTags(url2scrape)
    if tags_list is None:
        tags_list = []
    return tags_list