Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: coquic en 26 de Julio 2014, 16:44
-
Hola gente, acudo nuevamente a uds por ayuda.
Lo que quiero hacer es sencillo o eso creo pero no se como, ahora les cuento.
Tengo botones en una aplicacion grafica que tengo funcionando hecha con wxPython, lo que quiero agregar es que cuando quede el mouse sobre un boton, aparezca la descripcion de lo que es, se entiende??
Por ejemplo, si tengo un boton que es para reproducir audio, cuando deje el mouse sobre este boton un momento, aparezca el cartelito que dice "Play" o "Reproducir", lo que sea.
Como pasa sobre las imagenes o botones en una web.
cualquier ayuda se agradece.
Saludos!!
-
Hola, hay una clase denominada ToolTip que te permite incorporar ese tipo de información. Puedes usar:
SetToolTip(self, tip)
SetToolTipString(self, tip)
Ejemplo de uso:
self.button_1.SetToolTipString ('Este es el botón 1')
self.button_2.SetToolTipString('Este es el botón 2')
Saludos.
-
Hola, gracias por responder.
Me sale este error:
AttributeError: 'ToolBarToolBase' object has no attribute 'SetToolTipString'
Sabes que podrá ser??
Gracias.
-
Es posible que no tengas definidos los botones como wx.Button
Mira este ejemplo cómo definen los botones:
=== example code
#!/usr/bin/env python
# -*- coding: iso-8859-1 -*-
# generated by wxGlade 0.5
import wx
class MyFrame( wx.Frame):
def __init__(self, *args, **kwds):
# begin wxGlade: MyFrame.__init__
kwds["style"] = wx.DEFAULT_FRAME_STYLE
wx.Frame.__init__(self, *args, **kwds)
self.panel_1 = wx.Panel(self, -1)
self.button_1 = wx.Button(self.panel_1, 1001, "Aqui boton 1")
self.button_2 = wx.Button( self.panel_1, -1, "Aqui boton 2")
self.button_1.SetToolTipString ('This is button 1')
self.button_2.SetToolTipString('This is button 2')
self.panel_1.Bind(wx.EVT_BUTTON, self.OnButton, self.button_1)
self.button_2_state = 1
self.__set_properties()
self.__do_layout()
# end wxGlade
def __set_properties(self):
# begin wxGlade: MyFrame.__set_properties
self.SetTitle("frame_1")
# end wxGlade
def __do_layout(self):
# begin wxGlade: MyFrame.__do_layout
sizer_1 = wx.BoxSizer(wx.VERTICAL)
sizer_2 = wx.BoxSizer (wx.VERTICAL)
sizer_2.Add(self.button_1, 0, wx.ALL, 20)
sizer_2.Add(self.button_2, 0, wx.ALL, 20)
self.panel_1.SetSizer (sizer_2)
sizer_1.Add(self.panel_1, 1, wx.EXPAND, 0)
self.SetSizer(sizer_1)
sizer_1.Fit(self)
self.Layout()
# end wxGlade
# end of class MyFrame
class MyApp(wx.App):
def OnInit(self):
wx.InitAllImageHandlers()
frame_1 = MyFrame(None, -1, "")
self.SetTopWindow(frame_1)
frame_1.Show()
return 1
# end of class MyApp
if __name__ == "__main__":
app = MyApp(0)
app.MainLoop()