2010-11-01 769 views
1

我想要一個我的程序出現在任務欄中,但仍然沒有傳統的窗口邊框。我怎麼去解決這個問題?我知道self.overrideredirect(1),但是這會從我的任務欄中刪除我的程序。使Tkinter窗口出現在任務欄中

這是Windows 7

回答

4

我並沒有關於這個是「正確」的方式做到這一點要求,但看看這對你的作品:

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() 
1

您可以添加一個頂層窗口根目錄下,根將有它的圖標,但將不可見,頂層窗口將出現和消失在根事件。

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()