2011-09-05 81 views
0

我曾嘗試以下更改背景顏色文件選擇器按鈕的圖像,但沒有改變..的PyGTK:修改背景顏色/ GTK FileChooserButton

gtkrc文件:

style "FilechooserButtonStyle" = "button_style" 
{ 
base[NORMAL] = '#F5F5F5' 
base[SELECTED] = 'red' 
bg[NORMAL] = 'green' 
bg_pixmap[NORMAL] = "button.jpg" 

xthickness = 10 
ythickness = 10 
GtkFileChooserButton::set_app_paintable = True 

} 

在PY文件:

file_chooser.modify_base(gtk.STATE_NORMAL, gtk.gdk.color_parse("red")) 
file_chooser.modify_bg(gtk.STATE_NORMAL, gtk.gdk.Color('gray')) 

我該如何解決問題?

在此先感謝!

回答

1

我不那麼熟悉的.rc文件,但這個工程中的代碼:

#!/usr/bin/env python 
# example filechooser.py 

import pygtk 
pygtk.require('2.0') 

import gtk 

dialog = gtk.FileChooserDialog("Open..", None, 
          gtk.FILE_CHOOSER_ACTION_OPEN, 
          (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, 
          gtk.STOCK_OPEN, gtk.RESPONSE_OK)) 
dialog.set_default_response(gtk.RESPONSE_OK) 


##  here it is 
## 
for child in dialog.get_children(): 
    for enf in child.get_children(): 
    if isinstance(enf, gtk.HButtonBox): 
     for butt in enf.get_children(): 
      style = butt.get_style().copy() 
      style.bg[gtk.STATE_NORMAL] = butt.get_colormap().alloc (0xffff, 0x0000, 0x0000) 
      butt.set_style (style) 
## 

response = dialog.run() 
if response == gtk.RESPONSE_OK: 
    print dialog.get_filename(), 'selected' 
elif response == gtk.RESPONSE_CANCEL: 
    print 'Closed, no files selected' 
dialog.destroy() 

它會搜索所有對話框的孩子的找到按鍵和改變自己的風格,以紅色。 希望它對你有所幫助!

+0

謝謝,這很有幫助。我只需要改變孩子的風格。 – Yajushi