代码之家  ›  专栏  ›  技术社区  ›  Sajith Silva

gtk python网格调整

  •  1
  • Sajith Silva  · 技术社区  · 6 年前

    遵循有关容器的官方教程。

    import gi
    gi.require_version('Gtk', '3.0')
    from gi.repository import Gtk
    
    class MainWindow(Gtk.Window):
    
        def __init__(self):
            Gtk.Window.__init__(self, title="test")
    
            grid = Gtk.Grid()
            self.add(grid)
    
            button1 = Gtk.Button(label="Button 1")
            button2 = Gtk.Button(label="Button 2")
            button3 = Gtk.Button(label="Button 3")
            button4 = Gtk.Button(label="Button 4")
            button5 = Gtk.Button(label="Button 5")
            button6 = Gtk.Button(label="Button 6")
    
            grid.add(button1)
            grid.attach(button2, 1, 0, 2, 1)
            grid.attach_next_to(button3, button1, Gtk.PositionType.BOTTOM, 1, 2)
            grid.attach_next_to(button4, button3, Gtk.PositionType.RIGHT, 2, 1)
            grid.attach(button5, 1, 2, 1, 1)
            grid.attach_next_to(button6, button5, Gtk.PositionType.RIGHT, 1, 1)
    
    
    win = MainWindow()
    win.connect("destroy", Gtk.main_quit)
    win.show_all()
    Gtk.main()
    

    当我运行它时一切都很好

    enter image description here

    但是,如果我调整它的大小,网格将不会与主窗口一起调整大小。

    有关于如何调整网格大小的指针吗? enter image description here

    谢谢

    1 回复  |  直到 6 年前
        1
  •  2
  •   theGtknerd    6 年前

    将按钮设置为展开。例子:

    import gi
    gi.require_version('Gtk', '3.0')
    from gi.repository import Gtk
    
    class MainWindow(Gtk.Window):
    
        def __init__(self):
            Gtk.Window.__init__(self, title="test")
    
            grid = Gtk.Grid()
            self.add(grid)
    
            button1 = Gtk.Button(label="Button 1", expand = True)
            button2 = Gtk.Button(label="Button 2", expand = True)
            button3 = Gtk.Button(label="Button 3", expand = True)
            button4 = Gtk.Button(label="Button 4", expand = True)
            button5 = Gtk.Button(label="Button 5", expand = True)
            button6 = Gtk.Button(label="Button 6", expand = True)
    
            grid.add(button1)
            grid.attach(button2, 1, 0, 2, 1)
            grid.attach_next_to(button3, button1, Gtk.PositionType.BOTTOM, 1, 2)
            grid.attach_next_to(button4, button3, Gtk.PositionType.RIGHT, 2, 1)
            grid.attach(button5, 1, 2, 1, 1)
            grid.attach_next_to(button6, button5, Gtk.PositionType.RIGHT, 1, 1)
    
    
    win = MainWindow()
    win.connect("destroy", Gtk.main_quit)
    win.show_all()
    Gtk.main()