当我尝试这个时,
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'
有人可以解释错误并帮我解决一下吗?
答案 0 :(得分:0)
问题在于:
extract_button=Radiobutton(archivist_buttons,variable,text='Extract news from archive', value=1, font=('Times',24),command=extracts)
您未正确分配variable
,Radiobutton
正在寻找不存在的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}}