Python 使Tkinter窗口显示在任务栏中

Python 使Tkinter窗口显示在任务栏中,python,windows-7,tkinter,Python,Windows 7,Tkinter,我想在任务栏上显示我的程序,但仍然没有传统的windows Board。我该怎么办?我知道self.overrideredirect(1),但是这会将我的程序从任务栏中删除 这是针对Windows7的 我不认为这是一种“正确”的方法,但看看这是否适合你: try: from tkinter import * except ImportError: from Tkinter import * class NewRoot(Tk): def __init__(sel

我想在任务栏上显示我的程序,但仍然没有传统的windows Board。我该怎么办?我知道self.overrideredirect(1),但是这会将我的程序从任务栏中删除


这是针对Windows7的

我不认为这是一种“正确”的方法,但看看这是否适合你:

try:
    from tkinter import *
except ImportError:
    from Tkinter import *


class NewRoot(Tk):    
    def __init__(self):
        Tk.__init__(self)
        self.attributes('-alpha', 0.0)

class MyMain(Toplevel):
    def __init__(self, master):
        Toplevel.__init__(self, master)
        self.overrideredirect(1)
        self.attributes('-topmost', 1)
        self.geometry('+100+100')
        self.bind('<ButtonRelease-3>', self.on_close)  #right-click to get out

    def on_close(self, event):
        self.master.destroy()


if __name__ == '__main__':

    root = NewRoot()
    root.lower()
    root.iconify()
    root.title('Spam 2.0')

    app = MyMain(root)
    app.mainloop()
试试看:
从tkinter进口*
除恐怖外:
从Tkinter进口*
新根类(Tk):
定义初始化(自):
Tk.\uuuuuu初始(自我)
self.attributes('-alpha',0.0)
MyMain类(顶级):
定义初始(自我,主):
顶层。初始化(自,主)
自重写直接(1)
self.attributes('-top',1)
自几何(“+100+100”)
self.bind(“”,self.on_close)#右击退出
def on_关闭(自身、事件):
self.master.destroy()
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
root=NewRoot()
root.lower()
root.iconify()
root.title('Spam 2.0')
app=MyMain(根目录)
app.mainloop()

您可以在根对象下添加顶级窗口,使根不可见,然后处理图标事件以隐藏或显示顶级窗口

root = tkinter.Tk()
top = tkinter.Toplevel(root)
top.overrideredirect(1) #removes border but undesirably from taskbar too (usually for non toplevel windows)
root.attributes("-alpha",0.0)

#toplevel follows root taskbar events (minimize, restore)
def onRootIconify(event): top.withdraw()
root.bind("<Unmap>", onRootIconify)
def onRootDeiconify(event): top.deiconify()
root.bind("<Map>", onRootDeiconify)

window = tkinter.Frame(master=top)
window.mainloop()
root=tkinter.Tk()
top=tkinter.Toplevel(根)
top.overrideredirect(1)#删除边框,但也不希望从任务栏中删除边框(通常用于非顶级窗口)
属性(“-alpha”,0.0)
#toplevel跟踪根任务栏事件(最小化、还原)
def onRootIconify(事件):top.draw()
root.bind(“,onRootIconify)
def onRootDeiconify(事件):top.deiconify()
root.bind(“,onRootDeiconify)
窗口=tkinter.Frame(主窗口=顶部)
window.mainloop()

从几周前开始,我们就一直在寻找这款产品,效果非常好!只需创建一个新的普通根,并将close按钮附加到主根。这不是一个永久的解决办法,但很好。