当窗口未最小化(.overrideredirect
设置为True)时,我想在任务栏中显示我的tkinter窗口图标,我看到了诸如Make tkinter Window appear in the taskbar
和Tkinter, Windows: How to view window in windows task bar which has no title bar?
之类的其他问题,但是两者都有包含ctypes
模块的答案,我想知道是否有更简单的方法可以做到这一点,并且也许也可以在其他操作系统上使用。
这里是gui
from tkinter import *
import time
import os
x, y = 0, 0
def startMove(event):
global x, y
print(event.x_root, event.x, borderFrame.winfo_rootx())
x = event.x
y = event.y
def stopMove(event):
global x, y
x = None
y = None
def moving(event):
global x, y
x_ = (event.x_root - x)
y_ = (event.y_root - y)
root.geometry("+%s+%s" % (x_, y_))
def frame_mapped(e):
print(e)
root.update_idletasks()
root.overrideredirect(True)
root.state('normal')
def minimize(event):
root.update_idletasks()
root.overrideredirect(False)
#root.state('withdrawn')
root.state('iconic')
def exitProgram(event):
os._exit(0)
def hover(event):
event.widget.config(bg="red")
def unhover(event):
event.widget.config(bg="white")
def hoverMin(event):
event.widget.config(bg="grey")
def unHoverMin(event):
event.widget.config(bg="white")
root = Tk()
root.title("Draggable Root")
root.geometry("500x600")
root.overrideredirect(True)
borderFrame = Frame(root, width=500, height=600, bg="white")
borderFrame.pack_propagate(False)
borderFrame.pack(side=TOP)
holderFrame = Frame(borderFrame, width=500, height=570, bg="grey62")
holderFrame.pack_propagate(False)
holderFrame.pack(side=BOTTOM)
close = Label(root, font=("Arial", 11), bg="white", anchor=CENTER, text="X", cursor="hand2")
close.place(x=460, y=0, width=40, height=30)
min = Label(root, font=("Arial", 11), bg="white", anchor=CENTER, text="_", cursor="hand2")
min.place(x=420, y=0, width=40, height=30)
min.bind("<Enter>", hoverMin)
min.bind("<Leave>", unHoverMin)
min.bind("<Button-1>", minimize)
close.bind("<Enter>", hover)
close.bind("<Leave>", unhover)
close.bind("<Button-1>", exitProgram)
borderFrame.bind("<Button-1>", startMove)
borderFrame.bind("<ButtonRelease-1>", stopMove)
borderFrame.bind("<B1-Motion>", moving)
borderFrame.bind("<Map>", frame_mapped)
root.mainloop()
答案 0 :(得分:0)
如果您尝试在alt-tab上获取图标,那么我无法像Mac一样对它进行真正的测试,但是它显示在我的命令选项卡中,与alt-tab几乎相同。
我要更改的唯一要使窗口在系统上可见的是
root.overrideredirect(True)
root.overrideredirect(False)
在Mac上,仅root.overrideredirect(True)
隐藏窗口
答案 1 :(得分:0)
您可以尝试:
annotationView
例如:annotationView
或:root.iconbitmap("_full_path_to_icon_file")
。
相对路径是指图标图像是否存在于您当前的文件夹中,而不是其他位置。