drag_highlight 的 Pygtk 颜色
Posted
技术标签:
【中文标题】drag_highlight 的 Pygtk 颜色【英文标题】:Pygtk color for drag_highlight 【发布时间】:2016-04-29 12:19:18 【问题描述】:我正在尝试更改 gtk.EventBox
的突出显示颜色。它有一定的背景色,我想用它的互补色在它周围画一条线。我找到了drag_highlight
,它在小部件周围画了一条线,但我还没有弄清楚如何更改颜色:它总是黑色的。有什么想法吗?
【问题讨论】:
您可能需要为此编写自己的代码。在drag_highlight
的文档中提到它连接到expose_event
和draw
处理程序,所以如果你这样做,然后在这些事件发生时更新样式(或边框)。
【参考方案1】:
要在EventBox
周围画线,可以将其放入Frame
或另一个EventBox
(在这种情况下可以设置“边框”的宽度),这里是如何看起来:
这是代码(它是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()
【讨论】:
以上是关于drag_highlight 的 Pygtk 颜色的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Windows 下拖动链接到 PyGTK 应用程序?