2012-12-09 84 views
1

我正在使用python和gtk。pygtk全局標籤樣式

是否可以創建全局樣式?
我想使窗口中所有標籤中的文本變成紅色和粗體。
請給出一個代碼實例。編輯1: 它也必須在Windows上工作。

編輯2: 我的實際代碼:

#!/usr/bin/python 

    import gtk 
    import db 
    import datetime 
    import gobject 
    import pango 

    class ReportNew(gobject.GObject): 

      __gsignals__ = {"update-db": (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,())} 

      def __init__(self): 
        # Basics 
        self.__gobject_init__() 
        self.window = gtk.Window(gtk.WINDOW_TOPLEVEL) 
        self.window.connect("destroy",self.destroy) 
        self.window.set_default_size(800,400) 
        self.window.set_title("WINDOW") 

        screen = gtk.gdk.Screen.get_default() 
        css_provider = gtk.CssProvider() 
        css_provider.load_from_path('style.css') 
        context = gtk.StyleContext() 
        context.add_provider_for_screen(screen, 
              css_provider, 
              gtk.STYLE_PROVIDER_PRIORITY_USER 
              ) 

回答

1

您可以使用一個選擇來指定哪些部件是由樣式表的影響。

from gi.repository import Gdk as gdk 

screen = gdk.Screen.get_default() 

css_provider = gtk.CssProvider() 
css_provider.load_from_path('/path/to/file.css') 

context = gtk.StyleContext() 
context.add_provider_for_screen(screen, 
           css_provider, 
           gtk.STYLE_PROVIDER_PRIORITY_USER 
           ) 

創建/path/to/file.css

/* Set background on GtkLabel 
* and other types inheriting from 
* it 
*/ 
GtkLabel { 
    background-color: red; 
    font-weight:bold; 
} 
+0

如果我試試這個,下面的錯誤是養: AttributeError的: 'gtk.Window' 對象有沒有屬性 'setStyleSheet' – HappyHacking

+0

@HappyHacking對不起,想到的是'PyQt' ,看我更新的代碼 – 2012-12-09 14:32:58

+0

我相信與Gdk你的意思gtk.gdk ...但是這並不工作:AttributeError:類型對象'gtk.gdk.Screen'沒有屬性'get_default' 我找不到在http://www.pygtk.org/docs/pygtk/class-gdkscreen.html中。 – HappyHacking