📜  PyGTK-对齐类

📅  最后修改于: 2020-11-08 07:49:35             🧑  作者: Mango


事实证明,此小部件可用于控制其子小部件的对齐方式和大小。它具有四个属性,分别称为xalign,yalign,xscale和yscale。 scale属性指定子窗口小部件将使用多少可用空间。 align属性用于将子窗口小部件放置在可用区域中。

这四个属性的浮点值都介于0和1.0之间。如果xscale和yscale属性设置为0,则表示小部件不吸收任何可用空间,如果设置为1,则小部件分别吸收水平或垂直的最大可用空间。

如果将xalign和yalign属性设置为0,则意味着左侧小部件或上方小部件将没有可用空间。如果设置为1,则在窗口小部件的左侧或上方将有最大的可用空间。

gtk.alignment类具有以下构造函数-

gtk.alignment(xalign = 0.0, yalign = 0.0, xscale = 0.0, yscale = 0.0)

哪里,

  • xalign-是子窗口小部件左侧水平自由空间的一部分。

  • yalign-是子窗口小部件上方的垂直自由空间的分数。

  • xscale-是子控件吸收的水平自由空间的一部分。

  • yscale -Is是子窗口小部件吸收的垂直自由空间的一部分。

以下代码演示了gtk.alignment小部件的用法。顶层窗口中的Vbox中有一个上层Vbox和一个下层Hbox。在上方的垂直框中,放置了一个标签和一个Entry窗口小部件,以使其向左保留50%的空间,并通过将0.5 xalign和0.25分配给yalign属性来占据其中的25%以上。

在下方的HBox中,所有可用空间都在左侧。这是通过为xalign属性分配1来实现的。因此,水平框中的两个按钮显示为右对齐。

import gtk

class PyApp(gtk.Window):
   
   def __init__(self):
      super(PyApp, self).__init__()
      self.set_title("Alignment demo")
      self.set_size_request(400,200)
      self.set_position(gtk.WIN_POS_CENTER)
        
      vbox = gtk.VBox(False, 5)
      vb = gtk.VBox()
      hbox = gtk.HBox(True, 3)
      valign = gtk.Alignment(0.5,0.25, 0, 0)
        
      lbl = gtk.Label("Name of student")
      vb.pack_start(lbl, True, True, 10)
      text = gtk.Entry()
        
      vb.pack_start(text, True, True, 10)
      valign.add(vb)
      vbox.pack_start(valign)
        
      ok = gtk.Button("OK")
      ok.set_size_request(70, 30)
        
      close = gtk.Button("Close")
      hbox.add(ok)
      hbox.add(close)
        
      halign = gtk.Alignment(1, 0, 0, 0)
      halign.add(hbox)
        
      vbox.pack_start(halign, False, False, 3)
        
      self.add(vbox)
      self.connect("destroy", gtk.main_quit)
      self.show_all()
PyApp()
gtk.main()

上面的代码产生以下输出-

对齐演示