Jon*_*Jon 6 python gtk user-interface pygtk gtktreeview
我有一个对话框,其中包含pygtk.treeview,用于按优先级列出任务.每行具有基于该优先级设置的背景颜色,因此例如最高优先级具有浅红色背景.
行选择颜色不容易改变.我可以使用它来设置它treeview.modify_base(gtk.STATE_SELECTED, "#C4C4C4"),但没有颜色与用于增强优先级概念的颜色很好地配合.
我有想法将选择颜色更改为用作正常行背景的颜色的稍暗版本,因此在上面的示例中,这将是更深的红色.我尝试调用上面的函数来响应treeselection的changed信号,它可以工作,但是闪烁很重.
另一个想法是将选择更改为透明,并在其周围添加边框,但据我所知,这是不可能的.
注意:我知道这违反了用户选择的主题.我觉得我有充分的理由.具有颜色指示的优先级使其可以立即识别.选择颜色隐藏了这一点.如果您有其他建议,我向他们开放,但需要保留用户识别优先级的便利性.
您可以在最左侧添加一个单独的 pixbuf 单元(例如,与小图标大小相同)以指示选择。选定的行可以用用于背景的颜色的更“实心”(饱和)版本来填充它。例如。如果您使用粉红色背景作为高优先级,则可以使用红色作为选择指示器。或者您可以使用图标。
要使用颜色填充方法来实现此目的:
gtk.gdk.Pixbuf它的小部件,允许您创建一个纯色区域,也许使用该fill方法。然后,您可以在选择更改时对“选择单元格”进行着色或取消着色,以指示选择了哪一行,或显示图标(例如股票代码)。
请注意,我还没有实现这一点,这只是一个想法。它与通常的 GTK 选择指示有很大不同,因此(显然)请自行判断它是否可用。