tkMessageBox在运行时崩溃Python应用程序

时间:2016-08-14 08:19:21

标签: python macos tkinter tkmessagebox

import Tkinter
import tkMessageBox

def created():
    tkMessageBox.showinfo('File Created!', 'Letter.html Created on Desktop')

class simpleapp_tk(Tkinter.Tk):
    def __init__(self,parent):
        Tkinter.Tk.__init__(self,parent)
        self.parent = parent
        self.initialize()

    def initialize(self):
        self.grid()

# --- Everything Fine Here ---

        self.B = Tkinter.Button(self, text = 'Create Document', command = self.OnButtonClick)
        self.B.grid(column = 0, row = 6)


    def OnButtonClick(self):
        created()


if __name__ == "__main__":
    app = simpleapp_tk(None)
    app.title('Receipt Form')
    app.iconbitmap(os.getcwd() + '/M.tiff')
    app.mainloop()

我使用py2app创建一个独立的应用程序,但是当我运行它并按下按钮时,它似乎崩溃了。

我非常确定导致问题的是tkMessageBox,但消息框在IDLE中完全正常。

它在我的带有pyinstaller的Windows 10计算机上运行良好。

1 个答案:

答案 0 :(得分:0)

py2exe是py2app的windows版本。

首先要构建我们需要一个像这样的设置文件:

<强> [setup.py]

from distutils.core import setup
import py2exe                      #in your case import py2app
setup(console=['myFile.py'])

使用 python setup.py py2exe 运行此文件:

它将调用setup并告诉它我们需要一个控制台应用程序,主要入口点是“ myFile.py ”。

在完成构建时,会创建两个目录。查看dist目录并运行您的应用程序。

完全正常。

没有错误

PS - 确保您图标的路径正确

output screenshot here