本文整理汇总了Python中fife.extensions.pychan.widgets.Icon.hide_tooltip方法的典型用法代码示例。如果您正苦于以下问题:Python Icon.hide_tooltip方法的具体用法?Python Icon.hide_tooltip怎么用?Python Icon.hide_tooltip使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类fife.extensions.pychan.widgets.Icon
的用法示例。
在下文中一共展示了Icon.hide_tooltip方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: CoordsTooltip
# 需要导入模块: from fife.extensions.pychan.widgets import Icon [as 别名]
# 或者: from fife.extensions.pychan.widgets.Icon import hide_tooltip [as 别名]
class CoordsTooltip(object):
@classmethod
def get_instance(cls, cursor_tool):
if cursor_tool.session.ingame_gui.coordinates_tooltip is not None:
inst = cursor_tool.session.ingame_gui.coordinates_tooltip
inst.cursor_tool = cursor_tool
return inst
else:
return CoordsTooltip(cursor_tool)
def __init__(self, cursor_tool, **kwargs):
super(CoordsTooltip, self).__init__(**kwargs)
cursor_tool.session.ingame_gui.coordinates_tooltip = self
self.cursor_tool = cursor_tool
self.enabled = False
self.icon = Icon(position=(1, 1)) # 0, 0 is currently not supported by tooltips
def toggle(self):
self.enabled = not self.enabled
if not self.enabled and self.icon.tooltip_shown:
self.icon.hide_tooltip()
def show_evt(self, evt):
if self.enabled:
x, y = self.cursor_tool.get_world_location(evt).to_tuple()
self.icon.helptext = u'%d, %d ' % (x, y) + _("Press H to remove this hint")
self.icon.position_tooltip(evt)
self.icon.show_tooltip()
示例2: CoordsTooltip
# 需要导入模块: from fife.extensions.pychan.widgets import Icon [as 别名]
# 或者: from fife.extensions.pychan.widgets.Icon import hide_tooltip [as 别名]
class CoordsTooltip(object):
@classmethod
def get_instance(cls, cursor_tool):
if cursor_tool.session.coordinates_tooltip is not None:
inst = cursor_tool.session.coordinates_tooltip
inst.cursor_tool = cursor_tool
return inst
else:
return CoordsTooltip(cursor_tool)
def __init__(self, cursor_tool, **kwargs):
super(CoordsTooltip, self).__init__(**kwargs)
cursor_tool.session.coordinates_tooltip = self
self.cursor_tool = cursor_tool
self.enabled = False
self.icon = Icon()
def toggle(self):
self.enabled = not self.enabled
if not self.enabled and self.icon.tooltip_shown:
self.icon.hide_tooltip()
def show_evt(self, evt):
if self.enabled:
x, y = self.cursor_tool.get_world_location_from_event(evt).to_tuple()
self.icon.helptext = str(x) + ', ' + str(y) + " "+_("Press H to remove this hint")
self.icon.position_tooltip(evt)
self.icon.show_tooltip()
示例3: StatusIconManager
# 需要导入模块: from fife.extensions.pychan.widgets import Icon [as 别名]
# 或者: from fife.extensions.pychan.widgets.Icon import hide_tooltip [as 别名]
class StatusIconManager(object):
"""Manager class that manages all status icons. It listenes to AddStatusIcon
and RemoveStatusIcon messages on the main message bus"""
def __init__(self, session):
self.session = session
# {instance: [list of icons]}
self.icons = {}
# Renderer used to render the icons
self.renderer = self.session.view.renderer['GenericRenderer']
self.tooltip_instance = None # no weakref:
# we need to remove the tooltip always anyway, and along with it the entry here
self.tooltip_icon = Icon(position=(1,1)) # 0, 0 is currently not supported by tooltips
AddStatusIcon.subscribe(self.on_add_icon_message)
HoverInstancesChanged.subscribe(self.on_hover_instances_changed)
RemoveStatusIcon.subscribe(self.on_remove_icon_message)
WorldObjectDeleted.subscribe(self.on_worldobject_deleted_message)
def end(self):
self.tooltip_instance = None
self.tooltip_icon.hide_tooltip()
self.tooltip_icon = None
self.renderer = None
self.icons = None
self.session = None
AddStatusIcon.unsubscribe(self.on_add_icon_message)
HoverInstancesChanged.unsubscribe(self.on_hover_instances_changed)
RemoveStatusIcon.unsubscribe(self.on_remove_icon_message)
WorldObjectDeleted.unsubscribe(self.on_worldobject_deleted_message)
def on_add_icon_message(self, message):
"""This is called by the message bus with AddStatusIcon messages"""
assert isinstance(message, AddStatusIcon)
icon_instance = message.icon.instance
if not icon_instance in self.icons:
self.icons[icon_instance] = []
assert not message.icon in self.icons[icon_instance]
self.icons[icon_instance].append(message.icon)
# Sort, make sure highest icon is at top
self.icons[icon_instance] = sorted(self.icons[icon_instance], key=StatusIcon.get_sorting_key(), reverse=True)
# Now render the most important one
self.__render_status(icon_instance, self.icons[icon_instance][0])
def on_worldobject_deleted_message(self, message):
assert isinstance(message, WorldObjectDeleted)
# remove icon
if message.worldobject in self.icons:
self.renderer.removeAll(self.get_status_string(message.worldobject))
del self.icons[message.worldobject]
# remove icon tooltip
if message.worldobject is self.tooltip_instance:
self.on_hover_instances_changed( HoverInstancesChanged(self, set()) )
def on_remove_icon_message(self, message):
"""Called by the MessageBus with RemoveStatusIcon messages."""
assert isinstance(message, RemoveStatusIcon)
icon_instance = message.instance
if icon_instance in self.icons:
for registered_icon in self.icons[icon_instance][:]:
if message.icon_class is registered_icon.__class__:
self.icons[icon_instance].remove(registered_icon)
if len(self.icons[icon_instance]) == 0:
# No icon left for this building, remove it
self.renderer.removeAll(self.get_status_string(icon_instance))
del self.icons[icon_instance]
else:
# Render next icon
self.__render_status(icon_instance, self.icons[icon_instance][0])
return
def __render_status(self, instance, status):
status_string = self.get_status_string(instance)
# Clean icons
self.renderer.removeAll(status_string)
# pixel-offset on screen (will be constant across zoom-levels)
rel = fife.Point(0, -30)
layer = self.session.view.layers[LAYERS.OBJECTS]
pos = instance.position
# trial and error has brought me to this (it's supposed to hit the center)
loc = fife.Location(layer)
loc.setExactLayerCoordinates(
fife.ExactModelCoordinate(
pos.origin.x + float(pos.width) / 4,
pos.origin.y + float(pos.height) / 4,
)
)
node = fife.RendererNode(loc, rel)
try: # to load an animation
anim = horizons.main.fife.animationloader.loadResource(status.icon)
#.........这里部分代码省略.........