Python3.x:TypeError:'StringVar'对象不可迭代& AttributeError:'StringVar'对象没有属性'items'

时间:2017-10-24 02:02:01

标签: python-3.x user-interface tkinter

当我尝试这个时,

archivist_dates=[
    "Thur,19th of October",
    "Fri,20th of October",
    "Sat,21th of October",
    "Sun,22th of October",
    "Mon,23th of October",
    "Tue,24th of October",
    "Wed,25th of October",
    "Latest"]# the list of dates to be selected by the users



variable=StringVar()
variable.set(archivist_dates[0])

list_menu=OptionMenu(archivist_gui,variable,*archivist_dates)
list_menu.grid(row=2,column=2)


archivist_buttons=Frame(archivist_gui)
extract_button=Radiobutton(archivist_buttons,variable,text='Extract news 
from archive', value=1, font=('Times',24),command=extracts)

display_button=Radiobutton(archivist_buttons,variable,text='Display news 
extracted',value=2,font=('Times',24),command=htmlgenerator)

archive_button=Radiobutton(archivist_buttons,variable,text='Archive the 
latest news',value=3,font=('Tikmes',24),command=download)

出现了如下错误陈述:

  

_cnfmerge:由于以下原因导致回退:'StringVar'对象不可迭代Traceback(最近调用最后一次):文件   “/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/tkinter/init.py”   第103行,在_cnfmerge中       cnf.update(c)TypeError:'StringVar'对象不可迭代

     

在处理上述异常期间,发生了另一个异常:

     
    

Traceback(最近一次调用最后一次):文件     “/Volumes/study/en01/ifb104/ass2/InternetArchive/news_archivist.py”     798行         extract_button =单选框(archivist_buttons,变量,文本='提取物     来自档案的新闻',值= 1,字体=('时代',24),命令=摘录)
    文件     “/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/tkinter/init.py”     第2978行, init         小工具。 init (自我,主人,'radiobutton',cnf,kw)文件“/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/tkinter/init py”为,     第2284行, init         cnf = _cnfmerge((cnf,kw))文件“/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/tkinter/init.py”,     第106行,在_cnfmerge中         for k,v in c.items():AttributeError:'StringVar'对象没有属性'items'

  

有人可以解释错误并帮我解决一下吗?

1 个答案:

答案 0 :(得分:0)

问题在于:

extract_button=Radiobutton(archivist_buttons,variable,text='Extract news from archive', value=1, font=('Times',24),command=extracts)

您未正确分配variableRadiobutton正在寻找不存在的variable['items'],因为StringVar()没有'items'属性名为StringVar()

相反,您应该将variable=variable指定为extract_button=Radiobutton(archivist_buttons,variable=variable,text='Extract news from archive', value=1, font=('Times',24),command=extracts) 。这意味着完整的呼叫将是:

{{1}}