Is there a way to change the current PyGTK theme o

2019-04-13 15:23发布

I've written a Python app that uses PyGTK. It runs fine on Linux and looks great. It also runs fine on Windows, but it looks absolutely awful. The default GTK theme looks absolutely nothing like the native Windows GUI elements.

Is there anything I can do to make my Python app look a little better? Perhaps some function I can call to change to theme to something a little nicer?


Edit: using the rc_parse() function suggested in the answer below, I now have:

import pygtk,gtk

gtk.rc_parse("C:\\Program Files\\Common Files\\GTK\\2.0\\share\\themes\\Bluecurve\\gtk-2.0\\gtkrc")

window = gtk.Window(gtk.WINDOW_TOPLEVEL)
button = gtk.Button()
button.set_label("Hello")

window.add(button)

button.show()
window.show()

gtk.main()

...but it's not working.

4条回答
贪生不怕死
2楼-- · 2019-04-13 16:02

Try this after the reparse, to change the style:

gtk.rc_reset_styles(gtk.settings_get_for_screen(self.window.get_screen()))
查看更多
Fickle 薄情
3楼-- · 2019-04-13 16:10

I believe you're looking for the rc_parse function, which will let you load a gtkrc file with a theme. Also, see http://faq.pygtk.org/index.py?file=faq21.012.htp&req=show, which shows how to change the GTK theme on windows. Now the problem becomes finding a GTK theme that fits your needs. Some googling turns up http://gtk-wimp.sourceforge.net/, which may be what you need.

查看更多
虎瘦雄心在
4楼-- · 2019-04-13 16:10

I would look into gtk-wimp.

查看更多
劫难
5楼-- · 2019-04-13 16:23

You have to install the matching theme engine in Windows or use a gtk-wimp theme which is on Windows by default. Bluecurve requires the bluecurve engine. See http://faq.pygtk.org/index.py?file=faq21.012.htp&req=show

查看更多
登录 后发表回答