【发布时间】:2021-07-23 18:04:58
【问题描述】:
举一个非常简单的例子,考虑下面的代码
import tkinter as tk
from tkinter import messagebox
class App:
def __init__(self, parent):
# some widgets
label = tk.Label(parent, text="Label")
button = tk.Button(parent, text="button")
label.pack()
button.pack()
# and a menu
menu = tk.Menu(parent)
parent.config(menu=menu)
Menu1 = tk.Menu(menu)
menu.add_cascade(label="Menu", menu=Menu1)
for x in 'ABCD':
Menu1.add_command(label="Menu " + x,
command=lambda y=x: messagebox.showinfo(message=y))
if __name__ == '__main__':
root = tk.Tk()
root.geometry("250x100+100+50")
root.title("My humble GUI")
App(root)
root.mainloop()
产生一个像这样的窗口:
在运行pyinstaller --onefile --noconsole minimal.py(代码文件的名称是minimal.py)后,我在dist 文件夹中获得了一个捆绑文件(应用程序),它在运行时给了我以下信息:
菜单正常工作(这就是我包含它的原因;它不是真的很小,但它表明某些东西正在工作......),但窗口中的任何小部件都不可见(更不用说黑色窗口的颜色,我想这与问题有关)。
当我双击应用程序图标打开它时,它也会尝试打开它(图标在停靠栏中显示一秒钟),然后在两秒钟后打开它,更多或较少的;这似乎也不正常。
我该怎么办? 谢谢
【问题讨论】:
-
如果你不打算使用它,为什么要从
tk.Frame继承? -
@TheLizzard 说得好。我刚刚从另一个程序中提取了部分代码来制作一个小程序,如果没有那一点我也可以做到。无论如何,我刚刚尝试过不使用它,并且正如预期的那样,问题仍然存在......
-
我在 Windows 10 上尝试过,它可以工作。 onefile .exe 看起来就像我直接运行它一样。会不会是 Mac 的东西?
-
@RamtinNouri 是的,可能是这样。因此
macos标签。也许有人有同样的问题并且知道解决方案。无论如何,感谢您的反馈!
标签: python macos tkinter pyinstaller