【问题标题】:Why my tkinter app shows Tk or Toplevel when i stop with mouse over the icon?当我将鼠标悬停在图标上时,为什么我的 tkinter 应用程序显示 Tk 或 Toplevel?
【发布时间】:2020-08-08 15:42:54
【问题描述】:

我正在尝试使用 python 和 tkinter。 我有一个主 tk 窗口 (tk.Tk) 和一个启动窗口 (tk.Toplevel)

我使用以下行在两个窗口中添加了一个图标

self.iconphoto(False, tk.PhotoImage(file=globali.IMG_PATH + 'virtuve_ico.png'))

它工作正常,但是如果我将鼠标悬停在图标托盘(任务栏)上的图标上,它会显示一条文字,上面写着“Tk”或“Toplevel。我想将其更改为“我的应用名称”。

Toplevel on mouse over Tk on mouse over

这可能吗?

谢谢大家

【问题讨论】:

标签: python tkinter window-managers


【解决方案1】:

在我的情况下,正确的解决方案是添加这样的 className 参数

 root = tk.Tk(className="My App")

但是因为我使用的是我自己的类,所以我还必须将 className 传递给超类

root = MyClass(className="My App")
root.mainloop()

class MyClass(tk.Tk):
def __init__(self, className):
    super().__init__(className=className)

谢谢大家

【讨论】:

    【解决方案2】:

    如果设置标题不起作用,请尝试使用tkinter.Tk 对象的wm_iconname() 方法。

    In [1]: import tkinter as tk
    
    In [2]: root = tk.Tk()
    Out[2]: <tkinter.Tk object .>
    
    In [3]: root.wm_iconname?
    Signature: root.wm_iconname(newName=None)
    Docstring:
    Set the name of the icon for this widget. Return the name if
    None is given.
    File:      /usr/local/lib/python3.7/tkinter/__init__.py
    Type:      method
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多