2

我正在使用tkinter创建一个简单的窗口。当我运行时python mainwindow.py,会短暂弹出一个小窗口并在主窗口之前关闭(主要位于屏幕的左上角)这是一个演示它的GIF:

wtf

这是我使用的代码(mainwindow.py):

import tkinter as tk


def center(win, width, height):
    win.update_idletasks()
    x = (win.winfo_screenwidth() // 2) - (width // 2)
    y = (win.winfo_screenheight() // 2) - (height // 2)
    win.geometry(f'{width}x{height}+{x}+{y}')


def main():
    width = 500
    height = 500

    main_window = tk.Tk()
    main_window.title('7Watchlist DataGrabber')
    main_window.iconbitmap(main_window, r'images\icon.ico')
    center(main_window, width, height)
    main_window.resizable(False, False)

    main_window.mainloop()


if __name__ == "__main__":
    main()

有一个完全相似的问题有一个公认的答案。OP在评论中说:

我想我终于找到了问题的根源。app.iconbitmap(r"C:\Program Files (x86)\Notepad++\Files\journalicon.ico")[...] 所以你需要做的不是我的原始代码app.iconbitmap(app, r"C:\Program Files (x86)\Notepad++\Files\journalicon.ico")[...]

接受的答案似乎表明同样的事情:

  • 替换app.iconbitmap(r'address')app.iconbitmap(app, r'address').

但是我的代码已经使用iconbitmap了这种格式。所以我的问题是:我怎样才能摆脱这个小窗口?

4

1 回答 1

1

我刚刚删除了bitmap = main_windowfrom main_window.wm_iconbitmap(bitmap=None, default=None),似乎它解决了问题,我只设置了默认参数。虽然我在 Mac OS 上并且iconbitmap无法正常工作,就像图标没有显示一样。

我也运行了它,win.update_idletasks()但仍然看不到小窗口,但您可以通过删除它来尝试一下。

在此处输入图像描述

我希望这对你有所帮助。

于 2019-04-28T14:40:12.597 回答