Python GTK+3教程--窗口显得过大,不像示例图片

Posted

技术标签:

【中文标题】Python GTK+3教程--窗口显得过大,不像示例图片【英文标题】:Python GTK+3 tutorial--window appearing oversized, not like the example pictures 【发布时间】:2017-08-06 23:05:51 【问题描述】:

我正在学习 GTK+3 教程,并且我学习过的所有示例——以及我使用代码和 glade 编写的代码——都会产生一个比必要更大的窗口。

有没有人对我做错了什么有什么建议,或者如何解决它?

这是一个简单的例子:

import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk

class MyWindow(Gtk.Window):

    def __init__(self):
        Gtk.Window.__init__(self, title = 'Hello World')

        self.box = Gtk.Box(spacing=6)
        self.add(self.box)

        self.button1 = Gtk.Button(label = 'Hello')
        self.button1.connect('clicked', self.on_button1_clicked)
        self.box.pack_start(self.button1, True, True, 0)

        self.button2 = Gtk.Button(label = 'Goodbye')
        self.button2.connect('clicked', self.on_button2_clicked)
        self.box.pack_start(self.button2, True, True, 0)

    def on_button1_clicked(self, widget):
        print('Hello')

    def on_button2_clicked(self, widget):
        print('Goodbye')

win = MyWindow()
win.connect('delete-event', Gtk.main_quit)
win.show_all()
Gtk.main()

这是我的代码产生的结果:

根据教程,这是它应该看起来的样子

【问题讨论】:

可以指点教程吗? python-gtk-3-tutorial.readthedocs.io/en/latest/… 另外,我应该提一下,如果我手动将窗口调整为尽可能小的尺寸,它看起来就像示例一样。我编写的其他程序也是如此。只是当我输入显示的代码时,窗口每次都显得过大,而不是占用内容所需的最少空间。 【参考方案1】:

我可以使用以下任一方法解决此问题:

self.set_default_size(50,25)

win.set_default_size(50,25)

谢谢你的帮助!

【讨论】:

记得在某个时候接受它作为正确答案。【参考方案2】:

您的窗口管理器与教程不同或具有不同的设置。无论如何,我会尝试这个设置窗口大小请求的代码:

    self.set_size_request(100, 50)

【讨论】:

这不起作用——我无法设置一个小于我在没有指定大小的情况下得到的大小。我可以让它更大——(500, 500) 就像人们期望的那样工作。编辑:我也在使用 Gnome 3.2 作为窗口管理器,这是值得的。 self.set_default_width(100)self.set_default_height(50) 怎么样? 您的两个建议不起作用,但我使用 ipython 获取 Gtk.Window 类的目录并找到了解决方案(我觉得一开始不这样做很愚蠢),但是答案是:self.set_default_size(x,y)

以上是关于Python GTK+3教程--窗口显得过大,不像示例图片的主要内容,如果未能解决你的问题,请参考以下文章

在 OSX 上将新的 GTK 3 窗口置于前台

扩展器内带有树视图的 Gtk 3.0 窗口

GTK+入门教程

guake 3.4发布,支持切分窗口

Python gtk3 窗口监听输入事件

TPM 程序设计基础 3-2 :GTK3 窗口与控件