python - 使用带有复选按钮的网格和 tkinter 添加滚动条
问题描述
我已经看到了这个问题的多个其他答案,其中包括添加画布和框架等解决方案,但每次我尝试这样做时,检查按钮都不会显示在我的窗口中。
这段代码基本上是显示一个窗口,其中列出了带有复选按钮的 chrome 历史记录,并允许用户选择他们想要删除的内容。当他们向下滚动并单击“删除”按钮时,历史记录将被清除。
我已经设法使除了滚动条之外的所有东西都能正常工作。
import sqlite3
import os
from tkinter import *
path = os.path.expanduser('~/AppData/Local/Google/Chrome/User Data/Default/History')
conn = sqlite3.connect(path)
cur = conn.cursor()
select_statement = "SELECT urls.url FROM urls, visits WHERE urls.id = visits.url;"
cur.execute(select_statement)
results = cur.fetchall()
root = Tk()
text = root
# window title
title = Label(root,text = "Check the websites you want to delete : \n", justify = LEFT)
title.grid(row=1,column=0)
# Removing the files from the sql database
ids=[]
def delHis():
global cbs
for name, checkbutton in cbs.items():
if checkbutton.var.get():
for rows in cur.execute('''SELECT urls.id,urls.url FROM urls,visits WHERE urls.id = visits.url AND urls.url = (?); ''', [checkbutton['text']]):
print(rows)
id = rows[0]
ids.append((id,))
cur.executemany('''DELETE FROM visits WHERE id = ?''', ids)
cur.executemany('''DELETE FROM urls WHERE id = ?''', ids)
conn.commit()
# Creating the checkbuttons
cbs = dict()
for i,value in enumerate(results):
cbs[value] = Checkbutton(text, text = value, onvalue=True,offvalue=False, wraplength=500, )
cbs[value].var = BooleanVar(text, value=False)
cbs[value]['variable'] = cbs[value].var
cbs[value].grid(row=i+3, column=0)
# delete button that links to delHis()
button = Button(text, text='Delete')
button.config(height = 2, width = 50, bg = '#ff6666', fg = '#ffffff', command=delHis)
try:
button.grid(row=i+8, column=0)
except:
title = Label(text, text="History is empty", justify=LEFT)
title.pack()
text.grid()
root.mainloop()
我对这一切都很陌生,所以请具体一点。谢谢你。
解决方案
推荐阅读
- c++ - 模块接口中的内联含义
- vba - 如何使用 VB 脚本将 MS Word 应用程序发送到后台?
- css - 为什么我的 CSS 过渡在反应中不起作用
- c# - 对象引用未设置为对象的实例(基础结构)
- typescript - 如何在 TypeScript 中键入 autocurry
- typescript - babel-plugin-macros - MacroError:您从“未定义”导入的宏正在执行
- java - 从端点调用时,Springboot 获取 UTC+1 而不是 GMT
- mysql - 从sql中的列中提取特定的子字符串
- jwt - 无服务器联合应用程序状态
- django - 我无法通过 django 发送电子邮件