gpt4 book ai didi

python - 禁用 gtkbutton 的发光效果

转载 作者:行者123 更新时间:2023-11-30 23:54:16 26 4
gpt4 key购买 nike

我想知道如何禁用 gtkButton 在鼠标悬停时的发光效果。请帮助我。

提前谢谢您。

最佳答案

这可能就是您正在寻找的。它是 C++,但希望您可以将其翻译为等效的 Python。该代码会更改不同状态下小部件的背景颜色。

void changeColor(Gtk::Widget* widget, double r, double g, double b) {
Glib::RefPtr<Gdk::Colormap> colormap = widget->get_colormap();
Glib::RefPtr<Gtk::Style> style = widget->get_style()->copy();

// STATE_NORMAL (most of the time)
{
Gdk::Color color;
color.set_rgb_p(r,g,b); // <-- customize this
colormap->alloc_color(color);
style->set_bg(Gtk::STATE_NORMAL, color);
}

// STATE_PRELIGHT (when mouse hovers)
{
Gdk::Color color;
color.set_rgb_p(r*0.9,g*0.9,b*0.9); // <-- customize this
colormap->alloc_color(color);
style->set_bg(Gtk::STATE_PRELIGHT, color);
}

// STATE_ACTIVE (when clicked)
{
Gdk::Color color;
color.set_rgb_p(r*0.8,g*0.8,b*0.8); // <-- customize this
colormap->alloc_color(color);
style->set_bg(Gtk::STATE_ACTIVE, color);
}

widget->set_style(style);
}

您有兴趣在 STATE_PRELIGHT block 中设置正确的颜色,以便它们与 STATE_NORMAL block 中的颜色相同。 (我猜这就是你问题的意思)。

顺便说一句,还有另外两个状态在上面的方法中没有处理:STATE_SELECTED 和 STATE_INSENSITIVE。还必须指出的是,该函数尽管有其名称,但实际上并不会更改任何小部件的颜色。例如,它不会更改标签的颜色,因为标签采用其容器的颜色。所以不要太认真地对待函数签名。

关于python - 禁用 gtkbutton 的发光效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5237080/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com