2009-03-04 60 views
8

我有一個應用程序可以在使用Perl/TK GUI的Windows,Linux和Solaris上工作。由於受到限制,我們僅限於Perl/TK 只有。此外,我們僅限於舊的Perl/Tk版本,5.00404如何在Perl 5.004下增強Perl/TK GUI的外觀?

我想在這些限制內工作,以使GUI看起來儘可能的美觀和現代。

是否有任何網站資源有TK設計方案(對於按鈕,框架,顏色等),可以幫助我在這項努力?


我也在尋找現代化的建議就像一個,我發現here

如果你發現你的應用Tk的眼光放在基於X的系統有點難看,嘗試添加下面幾行到腳本的頂部:

$mw->optionAdd("*font", "-*-arial-normal-r-*-*-*-120-*-*-*-*-*-*"); 
$mw->optionAdd("*borderWidth", 1); 
+1

你能給我們一個截圖的應用程序嗎?根據我的經驗,使GUI更好的是關於設計而不是關於小部件的設置(取決於你對「nice」的定義,當然是這樣)。也許如果我們看到你現在有什麼我們可以提出一些建議。 – 2009-03-06 00:50:42

+1

讓我猜,Igor ,你在英特爾工作? – 2009-05-23 03:28:54

+0

Artem:是的,我記得你從一個項目中優化了現有的Perl代碼 – 2009-05-23 10:35:13

回答

5

嘗試使用圖像而不是按鈕元素,然後你可以有任何你喜歡的風格和字體可以烘烤英寸這幾乎適用於任何內容不動態的元素 - 包括窗格背景等。授予它更多的工作,但它確實解決了您的問題,特別是如果您在項目組中擁有一名稱職的藝術家。

5

您可以使用Tk theme engine給您的應用程序更好的外觀。

+1

Downvoted,因爲你不能從Perl 5.004訪問ttk的東西。需要至少5.6來訪問允許在最近版本的Tk中使用主題支持的新的綁定(Tkx或Tcl :: Tk)。 – 2009-03-05 04:41:00

2

使用optionAdd通過選項數據庫 調整默認值是一個合理的開始。關於這個線程,可以發現:

http://tcl.projectforum.com/tk/221

下載griffin.kit從那裏,使用SDX工具來解開它,並找到 griffin.tcl獲得一套良好的選項設置。

http://wiki.tcl.tk/3411爲sdx工具。

1

Tile Tk的主題引擎使它看起來更漂亮。但是,Perl/Tk遠遠落後於Tk的開發,並且無法利用Tile和其他技術。

您應該調查Tkx是否適合您。它與Perl/Tk不完全兼容,但API非常接近。它是Perl和Tcl/Tk之間的橋樑,所以它可以使用所有現代的Tcl/Tk特性(比如Tile),同時仍然使用Perl編寫應用程序邏輯。很多ActiveState自己的圖形工具都使用Tkx,結果相當好看。
ActiveState PPM http://docs.activestate.com/activeperl/5.8/images/ppm_gui.png

Perl 5.00404雖然是令人難以置信的古老。 Tkx dist聲稱依賴於Perl ≥ 5.008 ...我沒有足夠老的Perl來看看它有多準確。

1

由於在Linux中Tk :: Entry和Tk :: Text的背景是灰色的,我還會使用以下兩行。

$mw->optionAdd('*Entry.background', 'snow1'); 
$mw->optionAdd('*Text.background', 'snow1'); 

將「snow1」替換爲您選擇的顏色。您也可以使用顏色(如#ff9696)的十六進制表示(RGB)。