0

ウィジェットを今とまったく同じように見せたいのですが、サイズを小さくしたいのです。ボタン、ラベル、テキスト、画像などが含まれます。「これを半分のサイズにスケーリングする」と言って、必要なすべての画像処理、ウィジェットのサイズ変更などを GTK に行わせる方法はありますか? そうでない場合、これを達成する最も簡単な方法は何ですか?

4

4 に答える 4

2

ユーザー インターフェイスからテーマを変更することはお勧めしませんが、必要に応じて変更できます。カスタム gtkrc を使用すると、主に xthickness と ythickness が原因で、フォントとボタンの描画方法を変更できます。 .

 import gtk
 file = "/path/to/the/gtkrc"
 gtk.rc_parse(file)
 gtk.rc_add_default_file(file)
 gtk.rc_reparse_all()

カスタム gtkrc は次のようになります。

gtk_color_scheme = "fg_color:#ECE9E9;bg_color:#ECE9E9;base_color:#FFFFFF;text_color:#000000;selected_bg_color:#008DD7;selected_fg_color:#FFFFFF;tooltip_bg_color:#000000;tooltip_fg_color:#F5F5B5"
style "theme-fixes" {

  fg[NORMAL]        = @fg_color
  fg[PRELIGHT]      = @fg_color
  fg[SELECTED]      = @selected_fg_color
  fg[ACTIVE]        = @fg_color
  fg[INSENSITIVE]   = darker (@bg_color)

  bg[NORMAL]        = @bg_color
  bg[PRELIGHT]      = shade (1.02, @bg_color)
  bg[SELECTED]      = @selected_bg_color
  bg[INSENSITIVE]   = @bg_color
  bg[ACTIVE]        = shade (0.9, @bg_color)

  base[NORMAL]      = @base_color
  base[PRELIGHT]    = shade (0.95, @bg_color)
  base[ACTIVE]      = shade (0.9, @selected_bg_color)
  base[SELECTED]    = @selected_bg_color
  base[INSENSITIVE] = @bg_color

  text[NORMAL]      = @text_color
  text[PRELIGHT]    = @text_color
  text[ACTIVE]      = @selected_fg_color
  text[SELECTED]    = @selected_fg_color
  text[INSENSITIVE] = darker (@bg_color)

  GtkTreeView::odd_row_color  = shade (0.929458256, @base_color)
  GtkTreeView::even_row_color = @base_color
  GtkTreeView::horizontal-separator = 12

      font_name = "Helvetica World 7"
 }
 class "*" style "theme-fixes"
于 2009-08-16T05:12:15.407 に答える
2

解像度の独立性は、一部の gtk 開発者によって取り組んでおり、GTK に導入するための非常に大きなパッチを含む更新があります。ただし、パッチは1年前のものであり、どのように/いつ/含まれるかどうかはまだ不明です:(最後のスクリーンショット)

http://mail.gnome.org/archives/gtk-devel-list/2008-August/msg00044.html

于 2009-08-20T23:49:45.443 に答える
1

100% スケーラブルな gtk アプリを作成したので、gdk_draw_line と gdk_draw_rectangle に限定して自分で簡単にスケーリングできるようにしました。テキストは gdk_draw_line 経由で「完了」しました。(「完了」の特定の低い値の場合) http://wordwarvi.sourceforge.netを参照してください。

それがあなたを助けるというわけではありません、私は推測しています。

于 2009-08-16T05:24:10.103 に答える
1

これを行う方法は組み込まれていません。これを行うには、UI で「スペースを占めている」ものと、それを減らす方法を検討する必要があります。

UI の大部分がテキストと画像である場合は、小さいフォント サイズを使用してから、すべての画像を適切な割合で縮小できます。ウィジェットのサイズは、表示されているテキストと画像が縮小すると自動的に縮小されます (ハードコードの高さ/幅、GtkFixed の使用などの悪いことをしていない限り)。

注意が必要な部分は、フォント ポイント サイズと画像スケールの関係を判断することです。

編集:

これは、フォントサイズを変更するためのpygtk構文に関する投稿です

于 2009-08-12T23:29:55.493 に答える