4

私は PyGTK を使用して、次のことを行うウィジェットの組み合わせを考え出そうとしています:

  • 列に無数のウィジェットを追加さ​​せてください
  • 下からはみ出るものに到達するための垂直スクロールバーを提供する
  • ウィンドウのサイズが変更されたときに、利用可能な水平スペースを埋めるようにウィジェットの幅を調整します

ありがとう - GTK は初めてです。

4

2 に答える 2

8
  • 列内の無限の数のウィジェット: GtkVBox のように聞こえます。
  • 垂直スクロールバー: VBox を GtkScrolledWindow に配置します。
  • 水平方向のストレッチ: これには、VBox、ScrolledWindow、およびその他のウィジェットに適切なプロパティを設定する必要があります。少なくとも Glade では、ほとんどの場合、デフォルトでこれを処理しているようです (おそらく、ScrolledWindow のスクロールバー ポリシーを変更することをお勧めします)。

今トリックのために。上にリストしたことをそのまま実行すると、VBox のコンテンツは水平方向だけでなく垂直方向にもサイズ変更しようとするため、スクロールバーが表示されません。解決策は、VBox を GtkViewport に配置することです。

したがって、最終的な階層は ScrolledWindow( Viewport( VBox( widgets ) ) ) です。

于 2009-01-23T19:23:01.063 に答える
0

スティーブがコードで言ったこと:

vbox = gtk.VBox()
vbox.pack_start(widget1, 1, 1) ## fill and expand
vbox.pack_start(widget2, 1, 1) ## fill and expand
vbox.pack_start(widget3, 1, 1) ## fill and expand
swin = gtk.ScrolledWindow()
swin.add_with_viewport(vbox)
于 2011-03-26T06:54:52.347 に答える