Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Gtk笔记本标签大小_Python_User Interface_Gtk_Pygtk - Fatal编程技术网

Python Gtk笔记本标签大小

Python Gtk笔记本标签大小,python,user-interface,gtk,pygtk,Python,User Interface,Gtk,Pygtk,我正在使用gtkNotebook在我的应用程序底部显示许多小部件。问题是,当标签显示时,它们占用了大量空间,总体上看起来很尴尬。我发现这是因为gtk.ICON\u SIZE\u菜单比文本大,但我找不到任何更小的常数,我不想给它一个精确的像素大小,因为它可能会在不同的屏幕分辨率上出现混乱。有没有办法让按钮始终缩放到它旁边标签上文本的大小 下面是生成按钮的代码(它所在的hbox是选项卡显示的小部件): 我想你能做的就是 通过为笔记本标签提供自定义小部件 用于设置标签小部件的大小 查看以下示例是否适用

我正在使用gtkNotebook在我的应用程序底部显示许多小部件。问题是,当标签显示时,它们占用了大量空间,总体上看起来很尴尬。我发现这是因为
gtk.ICON\u SIZE\u菜单
比文本大,但我找不到任何更小的常数,我不想给它一个精确的像素大小,因为它可能会在不同的屏幕分辨率上出现混乱。有没有办法让按钮始终缩放到它旁边标签上文本的大小

下面是生成按钮的代码(它所在的hbox是选项卡显示的小部件):


我想你能做的就是

  • 通过为笔记本标签提供自定义小部件
  • 用于设置标签小部件的大小
  • 查看以下示例是否适用于您:

    import gtk
    import sys;
    
    class TestNotebook(gtk.Notebook):
        def __init__(self):
            gtk.Notebook.__init__(self)
    
        def add_new_tab(self, icon):
            image = gtk.Image()
            image.set_from_stock(icon, gtk.ICON_SIZE_DIALOG)
            image.show_all()        
    
            tab_image = gtk.Image()
            tab_image.set_from_stock(icon, gtk.ICON_SIZE_MENU)
    
            box = gtk.HBox()
            box.pack_start(tab_image, False, False)
            box.pack_start(gtk.Label(icon), True, True)
            # set tab size here
            box.set_size_request(50, 50)        
            box.show_all()
    
            self.set_current_page(self.append_page(image))
            self.set_tab_label(image, box)
    
    if __name__ == '__main__':
        notebook = TestNotebook()
        notebook.add_new_tab(gtk.STOCK_ABOUT)
        notebook.add_new_tab(gtk.STOCK_ADD)
        notebook.add_new_tab(gtk.STOCK_APPLY)
    
        box = gtk.VBox()
        box.pack_start(notebook)
    
        window = gtk.Window()
        window.resize(600, 400)
        window.add(box)
        window.show_all()
    
        gtk.main()
        sys.exit(0)
    

    希望这能有所帮助,如果你只是想缩小关闭按钮,看看Epiphany是如何去除按钮周围的大部分填充物的

    • (在PyGTK中,
      gtk_rc_parse_string
      gtk.rc_parse_string
    • 在所有的关闭按钮上
    结果:


    (这是他们代码的稍旧版本;Ephy trunk使用GTK+3.0 CSS样式,但想法相同。)

    有没有办法知道只有文本的hbox的标准高度?我这么说是因为我不想仅仅根据我的分辨率来做尺寸请求,而是基于屏幕上的尺寸。希望这是有意义的。我想你可以检查Widget.size\u request()是否适合你,谢谢
    import gtk
    import sys;
    
    class TestNotebook(gtk.Notebook):
        def __init__(self):
            gtk.Notebook.__init__(self)
    
        def add_new_tab(self, icon):
            image = gtk.Image()
            image.set_from_stock(icon, gtk.ICON_SIZE_DIALOG)
            image.show_all()        
    
            tab_image = gtk.Image()
            tab_image.set_from_stock(icon, gtk.ICON_SIZE_MENU)
    
            box = gtk.HBox()
            box.pack_start(tab_image, False, False)
            box.pack_start(gtk.Label(icon), True, True)
            # set tab size here
            box.set_size_request(50, 50)        
            box.show_all()
    
            self.set_current_page(self.append_page(image))
            self.set_tab_label(image, box)
    
    if __name__ == '__main__':
        notebook = TestNotebook()
        notebook.add_new_tab(gtk.STOCK_ABOUT)
        notebook.add_new_tab(gtk.STOCK_ADD)
        notebook.add_new_tab(gtk.STOCK_APPLY)
    
        box = gtk.VBox()
        box.pack_start(notebook)
    
        window = gtk.Window()
        window.resize(600, 400)
        window.add(box)
        window.show_all()
    
        gtk.main()
        sys.exit(0)