在Abaqus错误中导入tkinter

时间:2016-04-29 13:58:13

标签: user-interface tkinter abaqus

我在使用abaqus脚本时遇到了问题。我试图在abaqus scipt中使用tkinter。当我第一次运行我的代码程序运行正常但是当我第二次运行我的程序时,abaqus退出时出现以下错误: “意外的LoadlibraryA错误193 ipc_CONNECTION_BROKEN“

我正在使用带有python 2.7的abaqus 6.14 与英特尔Paralllal Stuido XE 2015 Composer Edition 64位更新2一起运行

我的插件类看起来像这样:

from abaqusGui import getAFXApp, Activator
from abaqusConstants import ALL
import os
thisPath = os.path.abspath(__file__)
thisDir = os.path.dirname(thisPath)
toolset = getAFXApp().getAFXMainWindow().getPluginToolset()
toolset.registerGuiMenuButton(
    buttonText='Pilot GUI', 
    object= Activator(os.path.join(thisDir, 'pilotDB.py')),
    kernelInitString=''
)

我的pilotDB类看起来像这样:

class pilotDB:     
import Tkinter
root = Tkinter.Tk()
app = pilotDB(root)
root.mainloop()
root.quit()

1 个答案:

答案 0 :(得分:0)

我找到了解决方案: 问题是当我第一次用右上角的X关闭TK窗口时,应用程序无法正常破坏窗口,因此当我第二次启动应用程序时,它崩溃了。解: 将以下代码添加到我的pilotDB类:

def shutdown_ttk_repeat(self):
     self.mainroot.eval('::ttk::CancelRepeat')
     self.mainroot.destroy()

然后将破坏性protokol添加到" init "在pilotDB类中的函数

def __init__(self, parent):
     self.mainroot=parent
     self.mainroot.protocol("WM_DELETE_WINDOW", self.shutdown_ttk_repeat):