Python Tkinter-小窗口在主窗口之前短暂弹出

时间:2019-04-28 13:51:22

标签: python tkinter

我正在使用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()

有一个完全相似的question,答案被接受。在其上,OP says在注释中:

  

我想我终于找到了问题的根源。 [...]因此,除了我的原始代码app.iconbitmap(r"C:\Program Files (x86)\Notepad++\Files\journalicon.ico"),您需要执行app.iconbitmap(app, r"C:\Program Files (x86)\Notepad++\Files\journalicon.ico") [...]

accepted answer似乎表明同一件事:

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

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

1 个答案:

答案 0 :(得分:0)

我刚刚从bitmap = main_window中删除了main_window.wm_iconbitmap(bitmap=None, default=None),似乎它解决了问题,我只设置了默认参数。虽然我使用的是Mac OS,但iconbitmap不能正常工作,因为图标未显示。

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

enter image description here

希望这对您有所帮助。