我想突出显示gtk.Table
. 我还希望鼠标悬停以不同的颜色突出显示它(例如在网络浏览器中的链接上)。我想只是用 eventBox 包装每个单元格并更改STATE_NORMAL
和STATE_PRELIGHT
bg 颜色,这确实有效,但是将鼠标悬停在 eventbox 上不起作用。有没有更好的办法?
问问题
1044 次
1 回答
2
这似乎有效:
def attach(w,c1,c2,r1,r2):
eb = gtk.EventBox()
a = gtk.Alignment(xalign=0.0,yalign=0.5)
a.add(w)
eb.add(a)
eb.set_style(self.rowStyle)
def ene(eb,ev):
eb.set_state(gtk.STATE_PRELIGHT)
def lne(eb,ev):
eb.set_state(gtk.STATE_NORMAL)
eb.connect('enter-notify-event', ene)
eb.connect('leave-notify-event', lne)
self.table.attach(eb, c1, c2, r1, r2,
xoptions=gtk.EXPAND|gtk.FILL,
yoptions=gtk.SHRINK)
它一次只突出显示每个单元格,因此我必须更改通知事件以点亮所有内容。
编辑:self.rowStyle
设置如下:
tmpeb = gtk.EventBox()
st = tmpeb.get_style().copy()
st.bg[gtk.STATE_PRELIGHT] = gtk.gdk.Color(65535,65535,0)
self.rowStyle = st
我创建一个EventBox
只是为了获得它的风格。
于 2009-08-07T02:05:18.470 回答