2017-02-21 22 views
0

Glade(GTK#3.20 + C#)でアプリケーションインターフェイスのプロトタイプを作成し、CSSスタイルをCssProviderで使用します。問題は、私は私のメインコンテナとしてGTKLayoutを使用していると私はそれがUIを作成するために、間違った方法だと思うということですGladeでGTK +の整列とサイズ変更

enter image description here

:私はこれを持っています。私はこのタイプのコンテナを使用しています。なぜなら、プロトタイプ作成中にGlade内で必要に応じてウィジェットのサイズを変更してドラッグできるからです。悪い点は、アプリケーションウィジェットのサイズを変更しているときにウィジェットがアプリケーションウィンドウの左上隅にくっついていることです。私はウィンドウの最小サイズを作ったが、ウィンドウサイズが増加しているときにUIを適応させたい。私は上のボックスコンテナ、Gridコンテナとして、このUIを作成しようとしました

enter image description here

:あなたは、以下の問題を見ることができます。しかし、私はいつも同じ問題を抱えていました。すべてのウィジェットのサイズは固定されていました(プロトタイプ作成中のGladeでは)、複雑なUIを作成することは不可能だったようです。

だから、私はいくつかの経験のある人は私にいくつかのことを説明したい:

  1. 私は私のウィジェットを整理する必要があります(これはコンテナに)サイズを変更する能力を有することがどのように間違った方法でGTKLayoutを使用していた場合それらは私が(Gladeで)欲しいのと同じように、私のスクリーンショットのように見えるように。
  2. GTKLayoutを使用することは悪いことではない場合、適応UIを作成するためにどのように調整問題を解決する必要がありますか?
  3. GTKLayoutを使用することが悪い習慣である場合、どのように適応UIを作成し、どのコンテナを使用する必要がありますか?ここで

(はい、私は色のパネルを作成するために、ラベルウィジェットを使用しています)窓の構造である:

enter image description here

答えて

0

異なるcontainers availableを見て、gtk-demoを実行して、どのように構成されているかを確認してください。既存のアプリケーションでgtk-inspectorを使用して、レイアウト方法を知ってください。

また、このレイアウト "ガイド" を読むことができる:

https://python-gtk-3-tutorial.readthedocs.io/en/latest/layout.html

TLDR:GtkGridを使用してください。

+0

Yeeaah、あなたは正しいです。私はグリッドをチェックし、30分間操作した後、UIを新しい適応システムに移植しました。ありがとう! リサイズの問題はマージンによって解決されました! –

0

GtkLayoutは等々、ストレッチ縮小するように設計されていません。 GtkBoxをGTK_EXPAND(True)および/またはGTK_FILL(True)に設定することをお勧めします。 Gladeでラベル、ボタン、または子ウィジェットを選択し、パッキングタブを見てください。

+0

ボックスとグリッドでのみ同じUIを作成するにはどうすればよいですか?私が正しく理解している限り、そのコンテナ内のウィジェットのサイズを変更することは不可能です。 –

+0

'expand'と' fill'の他に、Gladeの* Common *タブの 'alignment'があります。これはボックス/グリッドを中央や端などに移動することができます。また、* Generalタブのbox/gridの均質なプロパティをチェックします。さらに、これらのうちのいくつかは、ボックス/グリッド内のボタン/ラベルで使用でき、それらを小さくまたは中央に置くことができます。 – theGtknerd

+0

ええ、私はそれを見ます。しかし、グリッドセルのサイズを変更するにはどうすればよいですか?均質性がなくても限界があるようです。 –

0

この場合、最良の選択肢はGtkFixedと思われます。

関連する問題