Pygtk颜色用于拖动高亮度

2024-09-29 05:18:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试更改gtk.EventBox的突出显示颜色。它有一定的背景色,我想用它的互补色画一条线。我找到了drag_highlight,它在小部件周围画了一条线,但是我还没有弄清楚如何改变颜色:它总是黑色的。有什么想法吗?在


Tags: gtk颜色部件黑色highlight背景色drageventbox
1条回答
网友
1楼 · 发布于 2024-09-29 05:18:31

要使这条线围绕EventBox,可以将其放入Frame或另一个{}(在这种情况下,可以设置“border”的宽度),如下所示:

enter image description here

下面是代码(它是一个modified EventBox example):

#!/usr/bin/env python

# example eventbox.py

import pygtk
pygtk.require('2.0')
import gtk

class EventBoxExample:
    def __init__(self):
        window = gtk.Window(gtk.WINDOW_TOPLEVEL)
        window.set_title("Event Box")
        window.connect("destroy", lambda w: gtk.main_quit())
        window.set_border_width(10)

        # Create an EventBox and add it to our toplevel window
        frame = gtk.EventBox() # gtk.Frame()
        window.add(frame)
        frame.show()
        frame.set_border_width(2)
        frame.modify_bg(gtk.STATE_NORMAL,
                            frame.get_colormap().alloc_color("blue"))

        event_box = gtk.EventBox()
        frame.add(event_box)
        event_box.set_border_width(10)
        event_box.show()

        # Create a long label
        label = gtk.Label("Click here to quit, quit, quit, quit, quit")
        event_box.add(label)
        label.show()

        # Clip it short.
        label.set_size_request(110, 20)

        # And bind an action to it
        event_box.set_events(gtk.gdk.BUTTON_PRESS_MASK)
        event_box.connect("button_press_event", lambda w,e: gtk.main_quit())

        # More things you need an X window for ...
        event_box.realize()
        event_box.window.set_cursor(gtk.gdk.Cursor(gtk.gdk.HAND1))

        # Set background color to green
        event_box.modify_bg(gtk.STATE_NORMAL,
                            event_box.get_colormap().alloc_color("green"))

        window.show()

def main():
    gtk.main()
    return 0

if __name__ == "__main__":
    EventBoxExample()
    main()

相关问题 更多 >