python gtk.window.resize 调整窗口大小无效
我有一个窗口,最开始是设定了一个大小的,想让它在用户进行操作时变得更小或更大。我把它设置成了一个顶部停靠的窗口,这样就没有其他窗口可以把它最大化。
但是我无法把它调整到更小或更大的尺寸,什么都没有发生。
这是我创建这个窗口的代码:
window = gtk.Window(gtk.WINDOW_TOPLEVEL)
box = gtk.VBox(homogeneous=False, spacing=0)
window.add(box)
box.pack_start(browser, expand=True, fill=True, padding=0)
window.set_default_size(gtk.gdk.screen_width(),500)
window.move(0, 0)
window.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_DOCK)
window.show_all()
window.window.property_change("_NET_WM_STRUT", "CARDINAL", 32,
gtk.gdk.PROP_MODE_REPLACE, [0, 0, 100, 0])
这是我在用户进行操作时触发的代码:
window.resize(gtk.gdk.screen_width(),100)
这个代码没有报错,但也没有任何反应……
有人知道我哪里出错了吗?
1 个回答
2
你的代码是可以工作的,只需要把这一行改一下:
window.resize(gtk.gdk.screen_width(),100) # Instead of gtk.gdk.screen.width()
而且用下面这行代码会更好,也就是:
window.window.property_change("_NET_WM_STRUT", "CARDINAL", 32,
gtk.gdk.PROP_MODE_REPLACE, [0, 0, 100, 0])
在
window.show_all() 这个命令之后
否则会出现“NoneType”对象的错误。
这是你修改后的代码:
import gtk
class ResizeWindow:
def __init__(self):
self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
button = gtk.Button("Resize")
self.window.add(button)
button.connect("clicked", self.resizewin)
self.window.set_default_size(gtk.gdk.screen_width(),500)
self.window.move(0, 0)
self.window.show_all()
self.window.window.property_change("_NET_WM_STRUT", "CARDINAL", 32,
gtk.gdk.PROP_MODE_REPLACE, [0, 0, 100, 0])
def resizewin(self, widget, *args):
self.window.resize(gtk.gdk.screen_width(),100)
if __name__ == '__main__':
ResizeWindow()
gtk.main()
希望这就是你想要做的事情。