tkinter窗口在使用python 3.3.3 32位时不会出现,但在64位上可以正常工作
如果我直接运行脚本(使用python命令),它可以在32位和64位python 3.3.3安装上运行。 但我的任务是将它集成(作为插件/扩展)到企业架构师并执行脚本 下面是我的源代码和错误截图tkinter窗口在使用python 3.3.3 32位时不会出现,但在64位上可以正常工作,python,python-3.x,tkinter,add-in,enterprise-architect,Python,Python 3.x,Tkinter,Add In,Enterprise Architect,如果我直接运行脚本(使用python命令),它可以在32位和64位python 3.3.3安装上运行。 但我的任务是将它集成(作为插件/扩展)到企业架构师并执行脚本 下面是我的源代码和错误截图 import win32com.client import pythoncom import ctypes import sys from tkinter import * import glob import shutil import sys import os from tkinter impor
import win32com.client
import pythoncom
import ctypes
import sys
from tkinter import *
import glob
import shutil
import sys
import os
from tkinter import filedialog
class Application():
def __init__(self, master=None):
mGui = Tk()
mGui.geometry('400x80')
mGui.title('Choose the template directory ')
mEntry = Entry(mGui,width=50,state="readonly",font=("Arial", 8,"bold")).grid(row=0,column=0,padx=(15),pady=(15))
mButton = Button(mGui,text='Browse',font=("Arial", 8,"bold")).grid(row=0,column=1)
mButton = Button(mGui,text='Save',font=("Arial", 8,"bold")).grid(row=1,column=0,padx=(15),pady=(2))
mGui.mainloop()
class EAAddin():
_public_methods_ = ['EA_FileOpen', 'EA_GetMenuItems', 'EA_MenuClick']
_reg_progid_ = "EAAddin"
_reg_clsid_ = pythoncom.CreateGuid()
def EA_FileOpen(self, repo_obj):
"Callback EA_FileOpen"
repo = win32com.client.Dispatch(repo_obj)
print("ConnectionString = ", repo.ConnectionString)
def EA_GetMenuItems(self, repo_obj, menuLocation, menuName):
"Callback EA_GetMenuItems"
if menuName == "":
return "-EAAddin"
else:
menuOptions=[]
menuOptions.append("Export")
menuOptions.append("Templates Path")
return menuOptions
def EA_MenuClick(self, repo_obj, menuLocation, menuName, itemName):
"Callback EA_MenuClick"
app = Application()
if __name__ == "__main__":
print("Registering COM server...")
try:
import win32com.server.register
win32com.server.register.UseCommandLine(EAAddin)
except BaseException:
print(BaseException)
下面是64位版本的屏幕截图。
我点击Addin
结果-
下面是32位版本的屏幕截图。
我点击Addin
结果-
如果我需要做什么,请告诉我。默认的
baseName
来自sys.argv[0]
。可能是由于某种原因(嵌入错误?)导致的字节数。尝试显式设置:mGui=Tk(baseName=“testing\u html”)
。