2012-07-11 110 views
1

通過Perl TK或Python Tkinter製作的所有窗口看起來都像默認的Windows風格的窗口,右上方有紅色取消按鈕,前面是最​​大化和最小化按鈕,藍色頂部欄等。有可能製作自定義窗口,就像我們看到下載軟件的那些窗口一樣,從顏色到按鈕位置,樣式等都是自定義的。使用Perl TK或Python Tkinter的自定義窗口

回答

3

您可以通過設置type屬性關閉標準的裝飾在幾個方面,例如,通過設置toolwindow布爾屬性(僅適用於Windows),通過成爲一個overrideredirect窗口,或(用新的,足以TK)的窗口類似utility(僅適用於X11)。隨着標準裝飾禁用,您可以繪製任何你想要的東西(這是你提到的其他程序是如何做的),儘管有一些限制,特別是focus處理。覆蓋重定向窗口通常不參與鍵盤管理制度,因爲窗口管理器對於窗口管理器來說基本上是不可見的,而窗口管理器並不知道它們首先將注意力集中在它們上面。 (IIRC,你可以強制它,但是隨後你會與WM進行一場戰鬥,而且這很難做到; 「不會與WM戰鬥」是GUI設計的一個很好的經驗法則。)也可以將窗口設置爲瞬態(即,用於另一窗口),這往往會降低裝飾水平。

您設置這些東西的方式取決於您使用的語言。我可以指出要查看「mothership」 documentation的地方,但它們在不同語言中的工作方式各不相同。

+0

謝謝。這種定製化程度如何?我的意思是,是否可以通過Perl TK設計高度複雜的GUI界面,還是我可以用它來做某些事情呢? – SexyBeast 2012-07-13 12:37:11

+1

@Cupidvogel這取決於你想付出多少努力。一旦你添加了非矩形窗口(不是基本的Tk的一部分,但是Perl/Tk和Tkinter可能提供的一個簡單的擴展),那麼你可以做一些真正的幻想效果。過去我的窗戶形狀像骯髒的指紋。 :-) – 2012-07-13 13:26:51

+0

很酷。不能等待開始使用TK! – SexyBeast 2012-07-13 14:37:42