2009-03-04 17 views
8

私は、Perl/TK GUIを使用するWindows、Linux、およびSolaris上で動作するように構築されたアプリケーションを持っています。制約のため、Perl/TK に限定されます。です。さらに、古いPerl/Tkバージョンの5.00404に限定されています。Perl 5.004でPerl/TK GUIの外観を改善するにはどうすればよいですか?

これらの制限の範囲内で、GUIをできるだけ素敵でモダンなものにするために作業したいと思います。

TKの設計スキーム(ボタン、フレーム、色など)を持つウェブリソースがありますか?

あなたのTkのアプリがXベースのシステムで少し醜い見えることを発見している場合は、追加してください:


また、私はhereを見つけたような近代化のアドバイスを探していますあなたのスクリプトの先頭に行を次

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

あなたはアプリのスクリーンショットを教えていただけますか?私の経験ではGUIを素敵にするということは、ウィジェットの設定よりもデザインに関することです(あなたの "nice"の定義に依存します)。もしあなたが現在持っているものを見れば、私たちはいくつかの提案をすることができます。 –

+1

私は、あなたはIntelのために働いていますか? –

+0

Artem:はい、私はプロジェクトから、あなたが既存のperlコードを最適化したことを覚えています –

答えて

5

ボタン要素の代わりに画像を使ってみると、好きなようなスタイルでフォントを焼き付けることができます。これは、内容が動的ではない要素(ペインなどの背景も含む)ではほとんど機能します。それはより多くの仕事だが、あなたのプロジェクトグループに有能なアーティストがいれば、あなたの問題を解決することができます。

+0

これは最もエレガントなコードソリューションではないかもしれませんが、実用的です。探しているものがサイズ変更されています。 –

+0

うわー!私の最初の賞金!ありがとうございました。 – SpliFF

5

アプリより良いルックスを与えることTk theme engineを使用することができます。

+1

Perl 5.004からttkのものにアクセスできないため、最近のバージョンのTkでテーマサポートを使用できる新しいバインディング(TkxまたはTcl :: Tk)にアクセスするには少なくとも5.6が必要です。 –

+0

これは厳密には当てはまりません。 8.5(これは数年前から8.5で動作していました)、Pythonで使用できるかどうか、あるいはそれがどれくらい簡単かはわかりません。 –

+1

使用可能かどうかはよく分かりませんPythonとは? – MkV

2

オプションデータベース でoptionAddを使用してデフォルトを調整するのは合理的なスタートです。それをアンラップし、オプション設定の良いセットを取得するために griffin.tclを見つけるためにSDXツールを使用し、そこから

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

ダウンロードgriffin.kit:これについてのスレッドがで見つけることができます。

http://wiki.tcl.tk/3411 sdxツール用。

+0

Perl/TK、またはTCL/TKのみで動作しますか? –

+0

Tclのために書かれていますが、Perlには簡単に翻訳可能であるべきです。 – Hugge

1

Tile Tkのテーマエンジンはもっときれいに見えます。しかし、Perl/TkはTkの開発よりはるかに遅れており、Tileや他の進歩を利用することはできません。

Tkxがあなたのためのオプションであるかどうか調べる必要があります。 Perl/Tkと完全に互換性はありませんが、APIはかなり近いです。これはPerlとTcl/Tkの橋渡しであり、Perlでコード化されたアプリケーションロジックを持ちながら、Tclのような最新のTcl/Tk機能をすべて使用できます。 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のバックグラウンドがグレーであるため、次の2行も使用します。

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

'snow1'をお好みの色に置き換えてください。また、#ff9696のような色の16進表現(RGB)を使うこともできます。

+0

私はちょうどこの質問が何歳であるかを理解しています... – AlexTheBird

+0

[質問の年齢については心配しないでください](http://xkcd.com/979/)。 2年後、ここで私はあなたの答えを読んで、それが非常に便利であることを発見しています! – Glutanimate

関連する問題