Pygtk-aspectframe-class

提供:Dev Guides
移動先:案内検索

PyGTK-AspectFrameクラス

gtk.AspectFrameクラスは、Frameクラスのサブクラスです。 このフレームの子ウィジェットは、メインウィンドウのサイズが変更されても、常に縦横比(幅と高さ)を保持します。

gtk.AspectFrameウィジェットのratioプロパティは、ウィジェットの幅と高さの比率を決定します。 アスペクト比0.5は、幅が高さの半分であることを意味します。アスペクト比2.0は、幅が高さの2倍であることを意味します。 「比率」プロパティのデフォルト値は1.0です。

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

gtk.AspectFrame (label = None, xalign = 0.5, yalign = 0.5, ratio = 1.0, obey_child = True)
*xalign* プロパティは、子の左側の水平方向の空き領域の割合を決定します。 0.0は左側に_free_スペースがないことを意味し、1.0は左側にすべての_free_スペースがあることを意味します。
*yalign* プロパティは、子の上にある垂直方向の空き領域の割合を決定します。 0.0は_free_スペースがないことを意味し、1.0はすべての_free_スペースがあることを意味します。
*obey_child* プロパティがFalseの場合、フレームの幅と高さの比率が維持されます。

obey_childプロパティは、比率を無視するかどうかを決定します。 デフォルトはTrueです。

次のコードは、Frameクラスに使用されるものに似ています。 唯一の違いは、ButonBoxがAspectFrameウィジェットに配置されることです。

frm = gtk.AspectFrame(label = None, xalign = 0.5, yalign = 0.5,
   ratio = 5.0, obey_child = False)

注意-obey_childプロパティはFalseに設定されます。これは、ウィンドウのサイズが変更されてもアスペクト比を保持することが望ましいためです。

次のコードを観察してください-

import gtk

class PyApp(gtk.Window):
   def __init__(self):
      super(PyApp, self).__init__()
      self.set_title("Aspect Frame Demo")
      self.set_default_size(250, 200)
      self.set_border_width(5)
      frm = gtk.AspectFrame(label = None, xalign = 0.5, yalign = 0.5,
         ratio = 5.0, obey_child = False)
      hb = gtk.HButtonBox()
      btn1 = gtk.RadioButton(None,"Degree")
      hb.add(btn1)
      btn2 = gtk.RadioButton(btn1,"P.G.")
      hb.add(btn2)
      btn3 = gtk.RadioButton(btn1,"Doctorate")
      hb.add(btn3)
      frm.add(hb)
      frm.set_label("Qualifications")
      self.add(frm)
      self.connect("destroy", gtk.main_quit)
      self.show_all()

if __name__ == '__main__':
   PyApp()
   gtk.main()

上記のコードは、次の元のサイズ変更されたウィンドウを生成します-

アスペクトフレームデモ

元のウィンドウ

アスペクトフレームデモ

サイズ変更されたウィンドウ