我在spyder python3.6上使用Tkinter。 在我的程序中,我将Tkinter CheckButtons与命令配合使用。当我在Spyder中执行程序时,它运行良好。但是,当我使用cx Freeze生成EXE时,无法检查界面上的复选按钮。 我写这段代码来说明我的情况。
import tkinter as tk
root=tk.Tk()
frame = tk.LabelFrame(root,text="Fichiers excel", padx=5, pady=20)
frame.grid(row=0,sticky='nesw')
cbVar=tk.StringVar()
def fct():
if cbVar.get() =='':
cbVar.set('salut')
else:
cbVar.set('')
print(cbVar.get())
cb = tk.Checkbutton(frame, text="cb",variable=cbVar,command=fct,state=tk.NORMAL)
cb.grid(row=0,column=0)
root.mainloop()
我的设置代码如下:
import cx_Freeze
import sys
import os.path
PYTHON_INSTALL_DIR = os.path.dirname(os.path.dirname(os.__file__))
os.environ['TCL_LIBRARY'] = os.path.join(PYTHON_INSTALL_DIR, 'tcl', 'tcl8.6')
os.environ['TK_LIBRARY'] = os.path.join(PYTHON_INSTALL_DIR, 'tcl', 'tk8.6')
base = None
if sys.platform == 'win32':
base = "Win32GUI"
executables = [cx_Freeze.Executable("debug.py", base=base)]
cx_Freeze.setup(
name = "test",
options = {"build_exe": {"packages":["tkinter"]}},
version = "0.01",
description = "test",
executables = executables
)