Python Tkinter: 解决'AttributeError: module 'tkinter.ttk' has no attribute 'Toplevel'' 错误
在 Python Tkinter 中,你可能会遇到“AttributeError: module 'tkinter.ttk' has no attribute 'Toplevel'' 错误。这个错误通常发生在尝试使用 ttk.Toplevel() 创建一个新的窗口时。
这是因为 Toplevel 方法不是 tkinter.ttk 模块的一部分,而是在 tkinter 模块中。
解决方案:
要创建新的窗口,请使用 tk.Tk() 代替 ttk.Toplevel()。
以下是修改后的代码示例:
def zonghechaxunwindow():
window = tk.Tk()
def select1():
tree = tk.treeview(window)
tree['columns'] = ('id', 'name', 'gender', 'phone', 'address', 'remark')
tree.column('id', width=90)
tree.column('name', width=90)
tree.column('gender', width=90)
tree.column('phone', width=90)
tree.column('address', width=90)
tree.column('remark', width=90)
tree.heading('id', text='身份证号')
tree.heading('name', text='姓名')
tree.heading('gender', text='性别')
tree.heading('phone', text='联系电话')
tree.heading('address', text='家庭住址')
tree.heading('remark', text='职位')
tree.grid(column=0, row=1, sticky='NSEW')
conn = py.connect(host='localhost', user='root', password='houyushan1022', db='police')
cursor = conn.cursor()
cursor.execute("select * from person_info where 家庭住址='北京市朝阳区'" )
list_result = cursor.fetchall()
x = tree.get_children()
for item in x:
tree.delete(item)
for i in range(len(list_result)):
tree.insert('', i, text=str(i), values=(list_result[i][0], list_result[i][1], list_result[i][2], list_result[i][3], list_result[i][4], list_result[i][5]))
conn.commit()
conn.close()
select_button1 = tk.Button(window, bg='pink', text='查询家在北京朝阳区的民警', font=("微软雅黑 -20"), width=40, height=1, command=select1)
select_button1.place(x=10, y=370)
现在,当调用 zonghechaxunwindow() 函数时,应该会创建一个新的窗口。
原文地址: https://www.cveoy.top/t/topic/osqy 著作权归作者所有。请勿转载和采集!