R
Ravikanth
Hi all,
Hi all,
I am having a trouble creating tooltips. I am trying to embed a
matplotlib graph inside a TkInter canvas. After some search over the
net, I found out a way to create tooltips using the WXbackend.
But when I embed my matplotlib figure inside a Tk and the tooltips
are not getting displayed.
The error I am getting is below.
Traceback (most recent call last):
File "U:\graphing_tool\plotinsideTkInter\plotInTk.py", line 12, in
<module>
tooltip = wx.ToolTip(tip='tip with a long %s line and a newline\n'
% (' '*100)) # needs to be added to getover the bug with tooltip.
File "C:\Python27\lib\site-packages\wx-2.8-msw-unicode\wx\_misc.py",
line 771, in __init__
_misc_.ToolTip_swiginit(self,_misc_.new_ToolTip(*args, **kwargs))
PyNoAppError: The wx.App object must be created first!
I am not able to figure out the reason. I am trying to use IDLE for
running the script using python 2.7. I tried running from commandline
as well but still i face the same error. Following is the piece of
code I have used.
I created a simple 'sin' wave using matplotlib. and a button. Added
them to a TkFrame.
and then binded the code using
self.f.canvas.mpl_connect('motion_notify_event',_onMotion)
to '_onMotion' function, where I am printing the toooltip.
Can somebody please help me solving the issue.
Code I have used is below.
#!/usr/apps/Python/bin/python
import matplotlib, sys
matplotlib.use('WXAgg')
matplotlib.interactive(False)
import numpy as np
from numpy import arange, sin, pi
import matplotlib.pyplot as plt
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg,
NavigationToolbar2TkAgg
from matplotlib.figure import Figure
import wx
import Tkinter
tooltip = wx.ToolTip(tip='tip with a long %s line and a newline\n' %
(' '*100))
# needs to be added to getover the bug with tooltip.
def alt():
print 'My Button'
def _onMotion(event):
print "Xvalue:",event.xdata," Yvalue:",event.ydata
tip= "Xvalue:{0}, Yvalue: {1}".format(event.xdata,event.ydata)
tooltip.SetTip(tip)
tooltip.Enable(True)
class myClass(Tkinter.Tk):
def __init__(self,parent):
Tkinter.Tk.__init__(self,parent)
#global _onMotion
self.parent=parent
self.buildFigure()
def buildFigure(self):
self.f=plt.figure()
self.f = plt.figure(figsize=(5,4))
self.a = self.f.add_subplot(111)
self.t =
np.array([0.01,0.02,0.03,0.04,0.05,0.07,0.09,1.7,1.9,2.3,2.5,2.7,2.9])
self.s = sin(2*pi*self.t)
self.a.plot(self.t,self.s)
self.dataPlot = FigureCanvasTkAgg(self.f, master=self)
self.f.canvas.mpl_connect('motion_notify_event',_onMotion)
self.dataPlot.get_tk_widget().pack(side='top', fill='both')
self.toolbar = NavigationToolbar2TkAgg( self.dataPlot, self )
self.toolbar.update()
self.toolbar.pack()
self.btn=Tkinter.Button(self, text='btton',command=alt)
self.btn.pack(ipadx=250)
def alt (self):
print 9
if __name__ == "__main__":
app = myClass(None)
app.title('Embedding in Tk')
app.mainloop()
Hi all,
I am having a trouble creating tooltips. I am trying to embed a
matplotlib graph inside a TkInter canvas. After some search over the
net, I found out a way to create tooltips using the WXbackend.
But when I embed my matplotlib figure inside a Tk and the tooltips
are not getting displayed.
The error I am getting is below.
Traceback (most recent call last):
File "U:\graphing_tool\plotinsideTkInter\plotInTk.py", line 12, in
<module>
tooltip = wx.ToolTip(tip='tip with a long %s line and a newline\n'
% (' '*100)) # needs to be added to getover the bug with tooltip.
File "C:\Python27\lib\site-packages\wx-2.8-msw-unicode\wx\_misc.py",
line 771, in __init__
_misc_.ToolTip_swiginit(self,_misc_.new_ToolTip(*args, **kwargs))
PyNoAppError: The wx.App object must be created first!
I am not able to figure out the reason. I am trying to use IDLE for
running the script using python 2.7. I tried running from commandline
as well but still i face the same error. Following is the piece of
code I have used.
I created a simple 'sin' wave using matplotlib. and a button. Added
them to a TkFrame.
and then binded the code using
self.f.canvas.mpl_connect('motion_notify_event',_onMotion)
to '_onMotion' function, where I am printing the toooltip.
Can somebody please help me solving the issue.
Code I have used is below.
#!/usr/apps/Python/bin/python
import matplotlib, sys
matplotlib.use('WXAgg')
matplotlib.interactive(False)
import numpy as np
from numpy import arange, sin, pi
import matplotlib.pyplot as plt
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg,
NavigationToolbar2TkAgg
from matplotlib.figure import Figure
import wx
import Tkinter
tooltip = wx.ToolTip(tip='tip with a long %s line and a newline\n' %
(' '*100))
# needs to be added to getover the bug with tooltip.
def alt():
print 'My Button'
def _onMotion(event):
print "Xvalue:",event.xdata," Yvalue:",event.ydata
tip= "Xvalue:{0}, Yvalue: {1}".format(event.xdata,event.ydata)
tooltip.SetTip(tip)
tooltip.Enable(True)
class myClass(Tkinter.Tk):
def __init__(self,parent):
Tkinter.Tk.__init__(self,parent)
#global _onMotion
self.parent=parent
self.buildFigure()
def buildFigure(self):
self.f=plt.figure()
self.f = plt.figure(figsize=(5,4))
self.a = self.f.add_subplot(111)
self.t =
np.array([0.01,0.02,0.03,0.04,0.05,0.07,0.09,1.7,1.9,2.3,2.5,2.7,2.9])
self.s = sin(2*pi*self.t)
self.a.plot(self.t,self.s)
self.dataPlot = FigureCanvasTkAgg(self.f, master=self)
self.f.canvas.mpl_connect('motion_notify_event',_onMotion)
self.dataPlot.get_tk_widget().pack(side='top', fill='both')
self.toolbar = NavigationToolbar2TkAgg( self.dataPlot, self )
self.toolbar.update()
self.toolbar.pack()
self.btn=Tkinter.Button(self, text='btton',command=alt)
self.btn.pack(ipadx=250)
def alt (self):
print 9
if __name__ == "__main__":
app = myClass(None)
app.title('Embedding in Tk')
app.mainloop()