Python 按钮上未显示库存图标
仅显示:Python 按钮上未显示库存图标,python,gtk,pygtk,Python,Gtk,Pygtk,仅显示: 删除这是GTK最近的一个变化-开发者希望图标不要出现在按钮上。在Linux上,这可以通过编辑gconf键来更改 self.button = gtk.Button(stock=gtk.STOCK_DELETE) 在windows上,我认为(实际上我还没有尝试过)您需要在gtkrc文件中设置一个值(对我来说,它位于C:\Program Files\Gtk+\etc\gtkrc),并使用支持图标的主题(我认为默认的不支持) 设置主题后,您还可以将gtk按钮图像=1添加到~/.gtkrc-2
删除这是GTK最近的一个变化-开发者希望图标不要出现在按钮上。在Linux上,这可以通过编辑
gconf
键来更改
self.button = gtk.Button(stock=gtk.STOCK_DELETE)
在windows上,我认为(实际上我还没有尝试过)您需要在gtkrc文件中设置一个值(对我来说,它位于C:\Program Files\Gtk+\etc\gtkrc
),并使用支持图标的主题(我认为默认的不支持)
设置主题后,您还可以将gtk按钮图像=1
添加到~/.gtkrc-2.0
文件中,该主题可能会覆盖gconf
中的选项
编辑回答您的评论:
与此答案相同,但在Python中:
对于python,它只是
/desktop/gnome/interface/buttons_have_icons
我必须这样做,才能在不更改配置文件的情况下从Python开始工作。当我调用set_image()时,没有显示任何图像
image = gtk.Image()
# (from http://www.pygtk.org/docs/pygtk/gtk-stock-items.html)
image.set_from_stock(gtk.STOCK_**)
button = gtk.Button()
button.set_image(image)
button.set_label("")
我在Windows上的GTKmm中也遇到了同样的问题。“MS Windows”主题禁用股票按钮上的图像,并且该主题优先于gtkrc中的设置(因此在gtkrc中设置gtk按钮图像=true没有帮助)。我所做的是修改GTK设置运行时,图像按预期显示。:)以下是C++中的代码:
image = gtk.Image()
image.set_from_stock(gtk.STOCK_**, gtk.ICON_SIZE_BUTTON)
button = gtk.Button()
button.add(image)
button.show()
Glib::RefPtr settings=Gtk::settings::get_default();
/*强制在库存按钮上使用图标:*/
设置->属性按钮图像()=true;
应在构造第一个窗口后放置该属性。在不必更改任何系统配置文件的情况下设置属性的Python等价物是:
Glib::RefPtr<Gtk::Settings> settings = Gtk::Settings::get_default();
/* force using icons on stock buttons: */
settings->property_gtk_button_images() = true;
这应该在调用window.show()之后,显然,在gtk.main()循环之前。您可以显式显示按钮图像,gtk+开发人员不建议这样做,因为它会覆盖gtk+用户配置 所以
如果使用pygobject,则新语法为:
button.get_image().show()
在Gtk3
gtk.STOCK
方法中,已使用
自版本3.10起已弃用:使用带有_标签的Gtk.Button.new_()
相反
在这种情况下,它没有帮助,因为它指向自定义标签解决方案(new_with_label
),如果您想使用库存材料,您仍然可以使用新方法Gtk.Button.new_from_icon_name(icon_name,size)
和Gtk.Button.new_with_助记符(label)
将分别创建带有库存图标和标签的新按钮
带有“stock”图标的新按钮示例:
image.set_from_stock(gtk.STOCK_**, Gtk.IconSize.BUTTON)
带有“库存”标签的新按钮示例:
button = Gtk.Button.new_from_icon_name ("edit-paste", Gtk.IconSize.SMALL_TOOLBAR)
注意:在严肃的代码中,创建常量变量而不是直接使用字符串是更好的选择:)
参考资料:
GtkSettings*settings=gtk_settings_get_default();g_对象_集(设置,“gtk按钮图像”,真,空)代码>是等效的过程。
button = Gtk.Button.new_from_icon_name ("edit-paste", Gtk.IconSize.SMALL_TOOLBAR)
button = Gtk.Button.new_with_mnemonic("_Open")