如何解决Windows中的TkTreeCtrl错误?
我安装了tktreectrl这个库,并且成功导入了它。但是,在运行下面的程序时,我还是遇到了错误。有人能帮帮我吗?
这是我的代码...
from Tkinter import *
import sqlite3
import TkTreectrl as treectrl
root = Tk()
con = sqlite3.connect('Main.db')
cur = con.cursor()
cur.execute("SELECT * FROM Lucky")
mlb = treectrl.MultiListbox(root)
mlb.pack(side='top', fill='both', expand=1)
Button(root, text='Close', command=root.quit).pack(side='top', pady=5)
mlb.focus_set()
mlb.configure(selectcmd=select_cmd, selectmode='extended')
mlb.config(columns=('Column 1', 'Column 2'))
for row in cur.fetchall():
mlb.insert('end',*map(unicode,row))
root.mainloop()
这是我遇到的错误:
Traceback (most recent call last):
File "C:\Documents and Settings\Owner\Desktop\Python Work\Cx_Freeze\Multi_litbox.py", line 11, in <module>
mlb = treectrl.MultiListbox(root)
File "C:\Python27\lib\site-packages\TkTreectrl\MultiListbox.py", line 50, in __init__
Treectrl.__init__(self, master, showroot=showroot, **kw)
File "C:\Python27\lib\site-packages\TkTreectrl\Treectrl.py", line 489, in __init__
ver = master.tk.call('package', 'require', 'treectrl')
TclError: can't find package treectrl
有人能帮我解决这个问题吗?我需要在我的代码中使用多个列表框。
2 个回答
0
从下面的链接下载适合你系统的64位或x86位的tktreectrl:
https://sourceforge.net/projects/tktreectrl/files/tktreectrl/tktreectrl-2.4.1/
把下载的文件放到tcl文件夹里(比如你在出现这个错误的conda目录下)——
C:\Users\<username>\AppData\Local\Continuum\miniconda3\tcl\
这样你就可以解决两种错误:
找不到包的错误
无效参数的错误
2
你说你安装了tktreectrl。既然你在用Python的Tkinter,而不是普通的tcl,你还需要安装tkintertreectrl。
你有没有按照Michael在主页上提到的那样安装这两个包呢?
确保在安装这两个包的时候,先安装tktreectrl。安装TkinterTreectrl或者创建TkinterTreectrl小部件时,试着先简单地导入或者创建一个没有任何数据的TkinterTreectrl小部件。
我觉得可能是tktreectrl没有安装好。
编辑:从错误信息来看,确实是tktreectrl没有安装。TkTreectrl需要'treectrl'这个包,但你系统上目前没有。你可以在大多数Debian系统上找到这个包,或者直接从他们的sourceforge页面下载。
另外,建议你看看Michael关于使用TkTreectrl的说明。
File "C:\Python27\lib\site-packages\TkTreectrl\Treectrl.py", line 489, in __init__
ver = master.tk.call('package', 'require', 'treectrl')
TclError: 找不到包treectrl