2012-06-24 152 views
2

我想創建一個沒有頂部任務欄(可移動)的窗口,因此GUI框的外圍只有一個細的輪廓。我也想將我自己的'X'添加到框中。Python/Tkinter創建自定義窗口

import Tkinter 

class Application(Frame): 
    def __init__(self, master=None): 
     Frame.__init__(self, master) 
     self.parent = master 
............ 
def main(): 
    root = Tk() 
    root.attributes('-fullscreen', True) 
    root.geometry('500x250+500+200') 
    app = Application(root) 
    app.parent.configure(background = 'gray32') 
    root.resizable(width=FALSE, height=FALSE) 
    app.mainloop() 

main() 

我試過在進入全屏後刪除任務欄,但強制框的大小調整,儘管框不再可移動。有什麼建議麼?

[我看到這個線程:Removing or disabling a resizable Tkinter window maximise button under Windows

的-toolwindow屬性並沒有爲我工作,也許是因爲我使用Linux ...]

+0

也許嘗試調用窗口最大化?然而,這將需要它可以調整大小,但你可以隨時關閉調整大小後,它是最大化:) –

+0

這就是我在上面給出的代碼中做的...我不希望它完全最大化,只是一箇中等框頂部沒有任務欄。 – user1435947

回答

3

我更換了全屏命令(你說你不不想讓它完全最大化)與root.overrideredirect(1),它給出了一個窗口沒有標題欄(不是taskbar,這是別的東西)。

def main(): 
    root = Tk() 
    root.overrideredirect(1) 
    root.geometry('500x250+500+200') 
    app = Application(root) 
    app.parent.configure(background = 'gray32') 
    root.resizable(width=FALSE, height=FALSE) 
    app.mainloop() 
+0

它不可移動。 – user1435947

+0

@ user1435947:只需添加綁定以進行單擊和拖動,如[本問題]的答案中所述(http://stackoverflow.com/questions/4055267/python-tkinter-mouse-drag-a-window-without-borders -eg-overridedirect1) – Junuxx

+1

@ user1435947:它是可移動的,但是您刪除了操作系統允許您移動它的方式。您需要將自己的綁定添加到邊框,或者爲用戶提供其他方式來移動它。綁定到'',''和''並且允許用戶移動窗口很簡單 –