PyGtk:修改gtk FileChooserButton的背景颜色/图像

发布于 2024-12-02 20:11:33 字数 539 浏览 2 评论 0原文

我尝试按照以下方式更改文件选择器按钮的背景颜色,但没有任何改变..

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'))

我怎样才能解决问题?

提前致谢!

I have tried following to change background color for Filechooser Button, but nothing changed..

gtkrc file:

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

}

In py file:

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

How could I solve the problem ?

Thanks in advance!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

樱桃奶球 2024-12-09 20:11:33

我对 .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()

它在所有对话框的子项中搜索以查找按钮并将其样式更改为红色。
希望对您有帮助!

I'm not so familiar with the .rc files, but this works in the code :

#!/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()

It searches in all the dialog's childs to find buttons and change their style to red.
Hope it helped you !

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文