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

标签 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在评论中:

I think I finally figured out the root of the problem. [...] So instead of my original code app.iconbitmap(r"C:\Program Files (x86)\Notepad++\Files\journalicon.ico") you need to do app.iconbitmap(app, r"C:\Program Files (x86)\Notepad++\Files\journalicon.ico") [...]

还有accepted answer似乎表明了同样的事情:

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

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

最佳答案

我刚刚从 main_window.wm_iconbitmap(bitmap=None, default=None) 中删除了 bitmap = main_window ,似乎它解决了问题,我只设置了默认值范围。尽管我使用的是 Mac 操作系统,但 iconbitmap 无法正常工作,就像图标不显示一样。

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

enter image description here

希望这对您有帮助。

关于Python Tkinter-小窗口在主窗口之前弹出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55890931/

相关文章:

python - 在 Spark 本地模式下包含包

python - 关于如何在 tkinter 中制作 gif 动画的问题

python-3.x - 了解 tkinter Treeview

python - 如何在 SciPy 中获得类似 Simplex 的 "robustness"和边界?

python - 调用函数时需要参数

python - 在使用用 PL/Python 编写的 bool 存储过程的 PostgreSQL CHECK 约束中,可以更新错误消息的详细信息吗?

python - Tkinter:避免将焦点移动到窗口

带有语句 : 'Syntax error: invalid syntax' 的 Python

python - 高级计算器具有 Tkinter GUI 和变量错误

python - 如何从导入的脚本(tkinter、python)正确打开新窗口?