我正在开发一个程序,其中将从实时HTML页面中提取特定元素,并在GUI中向用户显示,然后在用户选择时将它们打印在HTML文档中。我能够执行大多数操作,需要帮助的一个小问题。在下面显示的代码中,我从网站中提取了一个标题,并使用Checkbox功能在GUI中显示该标题,如果用户勾选了复选框,则应将其打印在HTML文档中。但是,无论该复选框处于选中状态还是未选中状态,其值始终保持为“ False”,并且我无法继续进行代码处理。您能指出问题出在哪里吗?我实现了save_function只是为了检查Checkbox的值,它始终为“ False”。
class Application(Frame):
def __init__(self, master):
Frame.__init__(self, master)
self.gui()
def game_function(self):
game = Tk()
game.geometry('600x400')
game.title('Upcoming Video Game Releases')
game.resizable(0,0)
if self.check.get() == 0:
self.check_g_1 = BooleanVar()
url = "https://www.metacritic.com/browse/games/release-date/coming-soon/all/date"
user_agent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.47 Safari/537.36'
request = urllib.request.Request(url,headers={'User-Agent': user_agent})
response = urllib.request.urlopen(request)
encoding = response.info().get_param('charset', 'utf8')
html = response.read().decode(encoding)
date_title_1 = re.findall('<span>(.*?)</span>',html,re.DOTALL)[1]
title_1 = re.findall('<h3>(.*?)</h3>',html,re.DOTALL)[0]
title1_subtitle = Checkbutton(game, text = title_1.lstrip(), fg='black', font = ('Arial', 12), justify=LEFT, variable=self.check_g_1)
title1_subtitle.place(relx=0, rely=0)
date_1 = Label(game, text = date_title_1.lstrip(), fg='black', font = ('Arial', 12))
date_1.place(relx=0.6, rely=0)
else:
print("FFF")
save_button = Button(game, text = 'Save', font = ('Arial', 14), fg='black', bg='white', relief = 'solid', command=self.save_function)
save_button.place(relx=0.38, rely=0.72, height=60, width=200)
save_button.configure(wraplength='200')
def save_function(self):
print(self.check_g_1.get())
我担心self.check_g_1的值
答案 0 :(得分:1)
您的问题是,您正在一个tkinter实例中创建变量,并尝试在另一个实例中使用它。 Tk
的实例不能共享窗口小部件或变量。
根据经验,切勿创建两个Tk
实例。您需要将对Tk
的第二次呼叫替换为对Toplevel
的呼叫。