Pygtk-scrolledwindow-class
提供:Dev Guides
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 )-このメソッドは、ネイティブのスクロール機能を持たないウィジェット(子によって指定された)をスクロールされたウィンドウに追加するために使用されます。 これは、 *gtk.Viewport に child を追加し、スクロールウィンドウにビューポートを追加するのと同等の便利な関数です。
次のコードは、10 x 10の次元を持つ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()
上記のコードは、次の出力を生成します-