PPX123456
爱喝牛奶的肥牛
2020-11-29 19:37

各位大神帮忙看看为什么会报错呀, name 'self' is not defined。

  • python
# 创建空白窗口,作为主载体
 # root = tkinter.Tk()
self.root.tittle('爬虫工具')
#可以去调整窗口大小,后面加号是窗口在整个屏幕的位置
self.root.geometry('1068x715+10+10')
# 创建菜单
menubar = tkinter.Menu(self.root)
fmenu = tkinter.Menu(menubar)
# for each in ['新建', '打开', '保存', '另存为', '退出']:
fmenu.add_command(label='新建')
fmenu.add_command(label='打开')
fmenu.add_command(label='保存')
fmenu.add_command(label='另存为')
fmenu.add_command(label='退出', command=self.root.quit, accelerator='(Ctrl+Q)')
rmenu = tkinter.Menu(menubar)
# for each in ['运行爬虫', '生成图片']:
rmenu.add_command(label='运行爬虫', command=self.douban_comments, accelerator='(F11)')
rmenu.add_command(label='生成图片', command=self.make_image, accelerator='(F12)')
amenu = tkinter.Menu(menubar)
for each in ['版权信息', ]:
    amenu.add_command(label=each)
menubar.add_cascade(label='文件', menu=fmenu)
menubar.add_cascade(label='运行', menu=rmenu)
menubar.add_cascade(label='关于', menu=amenu)

self.root['menu'] = menubar
# 标签控件,窗口中放置文本组件
tkinter.Label(self.root, text='请输入url:', font=("华文行楷", 20), fg='black').grid(row=0, column=0)

# 定位 pack包 place位置 grid是网格式的布局
tkinter.Label(self.root, text='输出结果:', font=("宋体", 20), fg='black').grid(row=1, column=12)
tkinter.Label(self.root, text='爬取日志:', font=("宋体", 20), fg='black').grid(row=2, column=0)
# Entry是可输入文本框
# url_input = tkinter.Entry(self.root, font=("微软雅黑", 15))
# url_input.grid(row=0, column=1)
# 下拉框
# StringVar是Tk库内部定义的字符串变量类型,在这里用于管理部件上面的字符;不过一般用在按钮button上。改变StringVar,按钮上的文字也随之改变。
number = tkinter.StringVar()
url_input = tkinter.ttk.Combobox(self.root, width=26, textvariable=number)
# 设置下拉列表的值
url_input['values'] = ('https://hr.tencent.com', 'https://book.douban.com')
url_input.grid(column=1, row=0)
# tkinter.Label(self.root, text='腾讯网url: https://hr.tencent.com', font=("微软雅黑", 10), fg='black').grid(row=2, column=1)
# tkinter.Label(self.root, text='豆瓣网url: https://book.douban.com', font=("微软雅黑", 10), fg='black').grid(row=1, column=1)
# 文本控件,打印日志
log_text = tkinter.Text(self.root, font=('微软雅黑', 15), width=35, height=20)
# columnspan组件所跨越的列数
log_text.grid(row=4, column=0, rowspan=9, columnspan=10)
# result_text = tkinter.Canvas(self.root, width=45, height=22)
result_text = tkinter.Canvas(self.root, bg='white', width=550, height=600)
result_text.grid(row=2, column=12, rowspan=15, columnspan=10)
# 设置按钮 sticky对齐方式,N S W E
tkinter.button = tkinter.Button(self.root, text='开始', font=("微软雅黑", 15), command=self.douban_comments).grid(row=13, column=0, sticky=tkinter.W)
tkinter.button = tkinter.Button(self.root, text='退出', font=("微软雅黑", 15), command=self.root.quit).grid(row=13, column=10, sticky=tkinter.E)
# 创建滚动条
log_text_scrollbar_y = tkinter.Scrollbar(self.root)
log_text_scrollbar_y.config(command=log_text.yview)
log_text.config(yscrollcommand=log_text_scrollbar_y.set)
log_text_scrollbar_y.grid(row=3, column=10, rowspan=9, sticky='NS')
# 使得窗口一直存在
tkinter.mainloop()
  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

1条回答