2012-01-17 11 views
4

私はValaアプリケーションのウィンドウとその内部の画像を持っています。 この画像は時々img.set_from_pixbuf(imgdata);で変更されるため、サイズも変更されています。これはGtk.Boxに埋め込まれています。コンテンツが縮小したときに動的にGTK +のウィンドウを縮小しますか?

box = new Gtk.Box(Orientation.VERTICAL,5); 
... 
box.pack_end(img,false,false); 

だから、大きな画像が前にあった場合、私は小さいものと交換、窓は途方もなく大きいと私は動的に必要なスペースにそれを縮小する方法を発見していないまま。 私はwindow.set_default_size(box.width_request,box.height_request)で試しましたが、常に-1を返します。

どのようにしてウィンドウのサイズを変更するのですか? ありがとう!深すぎるこの中

答えて

2

私が間違っていない場合、ウィンドウの自動サイズ変更は、要素が大きすぎて描画できない場合にのみ発生します。さらに、set_default_sizeメソッドは、最初にウィンドウを描画するときだけ重要です。間違っていない限り、再度使用されることはありません。 resizeメソッドを使ってウィンドウのサイズを設定することをお勧めします。あなたはset_request_sizeメソッドを使用してその問題に実行する場合、あなたはrequest_sizeよりも、それは小さいサイズを変更できない場合はサイズを変更使用しているとき覚えておく必要があります(link

window.resize(box.width_request, box.height_request); 

一つ。

+0

実際のメソッド名/シグネチャ(バインディングで同等でなければならない)は 'get_size_request(出力幅、出力高さ)'と 'set_size_request(width、height)'です。さらに、 'get_size_request'は、リクエストが以前に明示的に設定されたディメンションに対してのみ意味があります。そうでなければ-1です。明示的なリクエストが行われていないにもかかわらず、ユーザがウィジェットに適切なサイズを望む場合は、代わりに 'get_preferred_height/_width/_size'を使用してください。これは、ウインドウを好ましい寸法よりも小さくサイズ変更することを可能にする(これは、例えば、スクロール可能である場合に有用である) –

0

ないが、ちょうど刺しを取って - 呼び出しん:

box.set_resize_mode(RESIZE_IMMEDIATE); 
box.check_resize(); 

が正しいことを行いますか?

+0

いいえ、それは何も変更されませんでした。とにかくありがとう。 – muxamilian

関連する問題