我正在开发数据库输入应用程序,并在使用Python 3.8的GUI中使用tkinter和tkcalendar。我在下面做了一个草稿的代码,说明了尝试在同一窗口中初始化两个DateEntry小部件时遇到的错误。
import tkinter as tk
import tkcalendar as tkdate
class root(tk.Tk):
def __init__(self, *args, **kwargs):
tk.Tk.__init__(self, *args, **kwargs)
container = tk.Frame(self)
container.grid(row=0, column=0)
self.DE1 = tkdate.DateEntry(self)
self.DE1.grid(row=1, column=0)
self.DE2 = tkdate.DateEntry(self)
self.DE2.grid(row=2, column=0)
app = root()
app.mainloop()
回溯似乎并没有提供太多信息,但是无论如何我都会将其粘贴在这里。请注意,正在创建的DateEntry小部件的多个实例似乎导致退出代码1:
Traceback (most recent call last):
File "C:/Users/pmo/.PyCharmCE2019.3/config/scratches/scratch_1.py", line 19, in <module>
app = root()
File "C:/Users/pmo/.PyCharmCE2019.3/config/scratches/scratch_1.py", line 15, in __init__
self.DE2 = tkdate.DateEntry(self)
File "C:\Users\pmo\AppData\Local\Programs\Python\Python38-32\lib\site-packages\tkcalendar\dateentry.py", line 105, in __init__
self._setup_style()
File "C:\Users\pmo\AppData\Local\Programs\Python\Python38-32\lib\site-packages\tkcalendar\dateentry.py", line 160, in _setup_style
self.style.map('DateEntry', **maps)
File "C:\Users\pmo\AppData\Local\Programs\Python\Python38-32\lib\tkinter\ttk.py", line 403, in map
self.tk.call(self._name, "map", style, *_format_mapdict(kw)),
_tkinter.TclError: Invalid state name r
Process finished with exit code 1
奇怪的是,我能够毫无问题地放置两个日历小部件,但是当尝试使用两个或多个DateEntry小部件时,整个应用程序将失败。我已经在线检查过,但没有其他人使用tkcalendar遇到此特定问题。有谁知道如何解释此错误,或者知道如何解决该错误?
谢谢!
答案 0 :(得分:0)
基于jasonharper的答案和链接:https://github.com/j4321/tkcalendar/issues/61
使用此库更新库时,创建者在此处发布的修复程序似乎确实可以解决该问题(如果对任何人都有用,我在Windows 10,x64上):https://github.com/j4321/tkcalendar/tree/fix_63
希望它将被推送到主库中!