User interface 隐藏/删除小部件后调整Gtk对话框的大小

User interface 隐藏/删除小部件后调整Gtk对话框的大小,user-interface,pygtk,gtk2,User Interface,Pygtk,Gtk2,移除子窗口小部件时,如何使模式对话框窗口调整大小(收缩)以适应其子窗口的大小? 下面的缩减示例设置模式对话框的宽度,添加小部件(自动扩展高度),但是当删除小部件时,剩余的子小部件向上移动,但模式保持相同的高度,底部留有空白 import gtk import pango dialog = gtk.Dialog() dialog.set_modal(True) screen_width = gtk.gdk.screen_width() screen_height = gtk.gdk.scree

移除子窗口小部件时,如何使模式对话框窗口调整大小(收缩)以适应其子窗口的大小? 下面的缩减示例设置模式对话框的宽度,添加小部件(自动扩展高度),但是当删除小部件时,剩余的子小部件向上移动,但模式保持相同的高度,底部留有空白

import gtk
import pango

dialog = gtk.Dialog()
dialog.set_modal(True)

screen_width = gtk.gdk.screen_width()
screen_height = gtk.gdk.screen_height()

dialog.set_property('width-request', screen_width/3)
dialog.set_position(gtk.WIN_POS_CENTER_ON_PARENT)
dialog.action_area.set_layout(gtk.BUTTONBOX_SPREAD)


flash = gtk.Label("Foo")
flash.set_alignment(0, 0)
flash.set_line_wrap(True)
flash.modify_fg(gtk.STATE_NORMAL, gtk.gdk.color_parse('#a94442'))
flash.modify_font(pango.FontDescription("sans 48"))

eventbox = gtk.EventBox()
eventbox.add(flash)
eventbox.modify_bg(gtk.STATE_NORMAL, gtk.gdk.color_parse('#ebccd1'))

label = gtk.Label("Username:")

def check(widget=None):
    print "test"
    flash.hide()

entry = gtk.Entry()

button = gtk.Button('Check')
button.connect('clicked', check)

table = gtk.Table(2, 2, False)
table.attach(label, 0, 1, 0, 1, xoptions=gtk.SHRINK)
table.attach(entry, 1, 2, 0, 1, xoptions=gtk.EXPAND|gtk.FILL)
table.attach(button, 1, 2, 1, 2, xoptions=gtk.EXPAND|gtk.FILL)
table.show()

vbox = gtk.VBox()
vbox.pack_start(eventbox, False, False, 10)
vbox.pack_start(table, False, False, 10)

dialog.vbox.add(vbox)
dialog.show_all()
dialog.run()
您是否尝试过:

对话框。调整大小(400400)

第一个整数是宽度,第二个整数是高度。您需要使用几何体来确定您需要什么,或者以某种方式获得小部件的大小


另外,这对我使用Gtk 3.12很有效。您没有发布您的版本。

对话框无法调整大小,但这可能会有所帮助@Louis“对话框无法调整大小[指向如何停止对话框调整大小的问题的链接]”
不计算