Python GTK 3表:按钮不应展开

Python GTK 3表:按钮不应展开,python,user-interface,gtk3,Python,User Interface,Gtk3,使用下面的代码,我遇到了一些问题,当我调整窗口大小时,“Log Leeren”和“Auto Scroll”按钮改变了它们的高度。它们应该正好有一个文本行高,其余的视口应该由scrolledWindow使用 我需要更改什么: class ConsoleLogWindow(Gtk.Window): def __init__(self, server): self.log = server["log"]; Gtk.Window.__init__(self, ti

使用下面的代码,我遇到了一些问题,当我调整窗口大小时,“Log Leeren”和“Auto Scroll”按钮改变了它们的高度。它们应该正好有一个文本行高,其余的视口应该由scrolledWindow使用

我需要更改什么:

class ConsoleLogWindow(Gtk.Window):
    def __init__(self, server):
        self.log = server["log"];
        Gtk.Window.__init__(self, title="Meteor Log von %s" % server["name"])

        # self.set_icon_from_file("filename")

        self.set_size_request(800,500)

        table = Gtk.Table(3, 2, False)

        self.add(table)

        # Should be only one line of thext high
        self.button_clear = Gtk.Button(label="Log Leeren")
        self.button_scroll = Gtk.Button(label="Auto Scroll")

        table.attach(self.button_clear, 2, 3, 1, 2)
        table.attach(self.button_scroll, 0, 1, 1, 2)

        # should take as much space as is available.
        scrollWindow = Gtk.ScrolledWindow()
        scrollWindow.set_hexpand(False)
        scrollWindow.set_vexpand(True)

        self.content_table = Gtk.Table(len(self.log)+1, 4, False)
        # self.content_table is filled here.

        scrollWindow.add(self.content_table)

        table.attach(scrollWindow, 0, 3, 0, 1)
在函数中调用window类,如:

def show_errors_menu(self, widget):
    print ("Showing Error Menu")
    win = ConsoleLogWindow(widget.get_node());
    win.connect("delete-event", Gtk.main_quit)
    win.show_all()
    Gtk.main()

在Qt方面,框架至少考虑了每个小部件A<代码>大小<代码>属性,一个<代码>最小尺寸属性和一个<代码> MimuluSimule属性。将这三个属性的“高度”和“宽度”设置为相同的值会使它们不可编辑。Java的小部件有一个显式的

可调整大小的属性。我不知道GTK3是如何防止调整大小的,但我在做一些web搜索时遇到了这样的情况,即通过扩展和添加
self.set_resizeable(False)
来创建不可调整的窗口,据说这是可行的。试试看,让我知道

不要使用
Gtk.Table
;它并不总是尊重其子窗口小部件的
展开
对齐
属性。自GTK 3.0以来,它的替代品一直是
GTK.Grid
。使用该选项,您只需确保在滚动窗口上将
expand
设置为true,在按钮上设置为false。

我不想禁用窗口的大小调整,我想在调整窗口大小时禁用按钮的大小调整,即我的可滚动区域(在GTK 3中称为scrolled window)占用尽可能多的可用空间。我知道您想要冻结按钮的大小,所以我的建议是将我发送给您的配方中的相同技术应用于按钮(即,创建GTK按钮的子类,并添加属性
self.set_resizeable(False)
(如果我没有解释清楚,我很抱歉):/Try it并让我知道!:d这解决了我最初的按钮垂直扩展问题,但现在我的整个网格只有两个按钮宽。