PyGTK-ScrolledWindowクラス

スクロールウィンドウは、親ウィンドウよりも大きい領域の他のウィジェットにアクセスするために作成されます。スクロールのネイティブサポートのTreeViewやTextViewのようないくつかのウィジェット。ラベルやテーブルなどの他の場合は、ビューポートを提供する必要があります。

次の構文は、gtk.ScrolledWindowクラスのコンストラクターに使用されます-

sw = gtk.ScrolledWindow(hadj, vadj)

以下はgtk.ScrolledWindowクラスのメソッドです-

  • ScrolledWindow.set_hadjustment() −これは水平調整をgtk.Adjustmentオブジェクトに設定します

  • ScrolledWindow.set_vadjustment() −これは垂直調整をgtk.Adjustmentオブジェクトに設定します

  • ScrolledWindow.set_Policy (hpolicy, vpolicy)−これにより、「hscrollbar_policy」および「vscrollbar_policy」プロパティが設定されます。次の事前定義された定数のいずれかが使用されます-

    • gtk.POLICY_ALWAYS −スクロールバーは常に存在します

    • gtk.POLICY_AUTOMATIC −スクロールバーは、必要な場合、つまりコンテンツがウィンドウよりも大きい場合にのみ表示されます

    • gtk.POLICY_NEVER −スクロールバーが存在しない

  • ScrolledWindow.add_with_viewport(child -このメソッドは、スクロールされたウィンドウにネイティブのスクロール機能のないウィジェット(子で指定)を追加するために使用されます。これは、加算と同等の便利な関数です。childgtk.Viewport、次にビューポートをスクロールウィンドウに追加します。

次のコードは、10 x10次元のgtk.Tableオブジェクトの周りにスクロールウィンドウを追加します。Tableオブジェクトは自動的な調整をサポートしていないため、ビューポートに追加されます。

sw = gtk.ScrolledWindow()
table = gtk.Table(10,10)

2つのネストされたループを使用して、それぞれ10列の10行を追加します。gtk.Buttonウィジェットは各セルに配置されます。

for i in range(1,11):
   for j in range(1,11):
      caption = "Btn"+str(j)+str(i)
      btn = gtk.Button(caption)
      table.attach(btn, i, i+1, j, j+1)

この十分な大きさのテーブルが、ビューポートとともにスクロールウィンドウに追加されます。

sw.add_with_viewport(table)

次のコードを確認してください-

import gtk

class PyApp(gtk.Window):
   
   def __init__(self):
      super(PyApp, self).__init__()
      
	  self.set_title("ScrolledWindow and Viewport")
      self.set_size_request(400,300)
      self.set_position(gtk.WIN_POS_CENTER)
      sw = gtk.ScrolledWindow()
      table = gtk.Table(10,10)
      table.set_row_spacings(10)
      table.set_col_spacings(10)
      for i in range(1,11):
         for j in range(1,11):
            caption = "Btn"+str(j)+str(i)
            btn = gtk.Button(caption)
            table.attach(btn, i, i+1, j, j+1)
      sw.add_with_viewport(table)
      self.add(sw)
      
	  self.connect("destroy", gtk.main_quit)
      self.show_all()

PyApp()
gtk.main()

上記のコードは次の出力を生成します-