2010-12-14 9 views
1

GTK#でラッピングテーブルを作成する方法:私は次のプロパティとGTK#で四角いボタンのテーブルを作成しようとしている

  1. ボタンが追加され、一度に一つに削除されます。
  2. ボタンはページ上にテキストのようにレイアウトする必要があります。左から右は行に収まらないようになり、次の行に折り返します。
  3. ウィンドウに収まるよりも多くのボタンがある場合は、垂直スクロールバーが必要です。
  4. テーブルのサイズを変更する必要があります。リサイズは、必要に応じてボタンをリフローする必要があります。
  5. ボタンは固定サイズである必要があります。

私は、Homogenous == trueのテーブルを使用しようとしました。 SizeAllocatedのハンドラを追加しました。テーブルの幅が変更されて列が追加または削除されたかどうかを確認します。それがあった場合は、すべてのボタンを削除し、NC列を更新して、正しい場所にボタンを再取り付けしました。これはうまくいくように見えましたが、ボタンは固定サイズではなく、水平のスペースを埋めるように拡大されました。

次は、均質性をオフにして、ボタンの好ましい寸法を設定しようとしました。小さな問題は理想的には、各ボタンに既知のサイズのビットマップを入れたいと思っています。ボタンがビットマップの周りにいくつのピクセルを追加するかにかかわらず、正しいレイアウトを得たいと思っていますが、私の計算を行うボタンの合計サイズ。より深刻な問題は、アプリケーションが一貫して再描画されないことです。ボタンのラベルが中央から外れたり、まったく描画されないことがあります。間違った信号に応答してレイアウトを変更しているため、これが問題なのかどうか疑問に思っています。

どうすればいいですか?テーブルは仕事のための正しいコンテナですか?私が箱から欲しいものをする何かがありますか? (おそらく、ファイルブラウザの「アイコン」や「サムネイル」ビューに似ていますか?)サイズの変化に応じてウィンドウのレイアウトを操作する正しい方法は何ですか?

答えて

1

このようなことを行うには、カスタムレイアウトコンテナが必要です。 GTK + 3.0で新しいheight-for-widthのものがなくてもラップボックスは難しいです(怖いハックが必要です)。ここで

は、あなたが役に立つかもしれない過去の取り組みへのリンクです:

GIMPも持っているかでラップボックスウィジェットを持っていましたそれは上記のものと同じかもしれませんが、わかりません。

2

GTK +にあなたのことがあるとは思いません。あなた自身のコンテナウィジェットを書くことに目を向けたいかもしれませんが、それほど難しいことではありません。

this tutorial(リンクが更新されました)です。

1

GtkToolPaletteは、GTK 2.20以降で使用できます。

+1

ああ... GTK#はうまく維持されていないようです。それはいくつかのバージョンの背後にあります。 : - / – Weeble

関連する問題