Nathan Osman
Nathan Osman

Reputation: 73165

Is there a way to change the current PyGTK theme on Windows?

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.

Upvotes: 2

Views: 3090

Answers (4)

rcriii
rcriii

Reputation: 11

Try this after the reparse, to change the style:

gtk.rc_reset_styles(gtk.settings_get_for_screen(self.window.get_screen()))

Upvotes: 1

jcoffland
jcoffland

Reputation: 5431

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

Upvotes: 1

li.davidm
li.davidm

Reputation: 12116

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.

Upvotes: 2

Dhaivat Pandya
Dhaivat Pandya

Reputation: 6536

I would look into gtk-wimp.

Upvotes: 1

Related Questions