|
From: John H. <jdh...@ac...> - 2004-07-22 12:48:24
|
>>>>> "Marinescu" == Marinescu Bogdan-bmarine1 <bog...@fr...> writes:
Marinescu> Hi John, Thanks for the quick reply, I was really
Marinescu> happy to download the snapshot and see that it works. I
Marinescu> tested in on wxPython 2.5.1.5 without problems, it
Marinescu> would probably work the same on 2.4.2.4. I'm not quite
Marinescu> familiar with the toolbar functions, so I don't know if
Marinescu> the results I'm getting are right. The "home" button
Marinescu> seems to do something, I can see a visual indication of
Marinescu> the repaint when I press it. On the other hand, the
Marinescu> "pan" button seems to be disabled; even if I can press
Marinescu> it, I'm unable to select it (or it isn't supposed to be
Marinescu> selectable?) Maybe this is normal for the example that
Marinescu> you sent in your e-mail? Because of this, I can't test
Marinescu> the functionality of the back/forward buttons. The
Marinescu> "zoom to rect" button also seems to be disable,
Marinescu> probably because I didn't use the zoom function, which
Marinescu> is also related to the "pan" button, if I understand it
Marinescu> correctly. The "save" button worked when trying to save
Marinescu> a PNG image, but the program exited with a "Do not know
Marinescu> know to handle extension *.jpg" message printed on the
Marinescu> console when trying to save a JPG image. Again, I don't
Marinescu> know if this behavior is correct or not, I'm just
Marinescu> posting my results.
These buttons don't do what you think they do because they all work
very differently from the classic matplotlib toolbar (else why
introduce a new one!)
The Forward and Back buttons are akin to the web browser forward and
back buttons. They are used to navigate back and forth between
previously defined views. They have no meaning unless you have
already navigated somewhere else using the pan and zoom buttons. This
is analogous to trying to click 'back' on your web browser before
visiting a new page. Nothing happens. 'Home' always takes you to the
first view. For Home, Forward and Back, think web browser where data
views are web pages. Use the pan and zoom to rectangle to define new
views.
The "Pan" button has two modes: pan and zoom. Click this toolbar
button to activate this mode. Then put your mouse somewhere over an
axes. Mode 1: Press the left mouse button and hold it, dragging it to
a new position. When you release it, the data under the point where
you pressed will be moved to the point where you released. Mode 2:
Press the right mouse button, dragging it to a new position. The x
axis will be zoomed in proportionate to the rightward movement and
zoomed out proportionate to the leftward movement. Ditto for the
yaxis and up/down motions.
The Zoom to rectangle button: Click this toolbar button to activate
this mode. Put your mouse somewhere over and axes and press the left
mouse button. Drag the mouse while holding the button to a new
location and release. The axes view limits will be zoomed to the
rectangle you have defined.
Save: click this button to launch a file save dialog. All the *Agg
backends know how to save the following image types: PNG, PS, EPS,
SVG. There is no support currently in Agg for writing to JPEG, TIFF
(the regular wx and gtk backends handle these types). It is possible
to use matplotlib/agg + PIL to convert agg images to one of these
other formats if required. I can provide a recipe for you. I prefer
PNG over JPG and TIFF, which is why I haven't worked too hard to
include these other image formats in agg.
Marinescu> I don't plan on using the toolbar
Marinescu> in my application, I have another (specialized) toolbar
Marinescu> and I'll be using its functions.
OK, perhaps you could give it one more time just to make sure my
instructions above are clear and that it is working fine on your
system?
Marinescu> The new event handling mechanism is great and it's
Marinescu> exactly what I needed. However, I have a couple of
Marinescu> fresh new questions for you :) The first one was also
Marinescu> present in my previous e-mail. When I create the plot
Marinescu> it has very large margins to the parent frame. This is
Marinescu> not convenient to me, as I'd like to have a plot that
Marinescu> is as large as possible and margins as small as
Marinescu> possible. Is there a way to modify these margins?
Yes, you can position axes anywhere you want in any size using the
axes command. See
http://matplotlib.sf.net/matplotlib.matlab.html#-axes and the example
http://matplotlib.sf.net/examples/axes_demo.py.
Marinescu> The other one is really new and it is related to
Marinescu> printing. Is there a way to print directly from the
Marinescu> library? I'm aware of the image save/image print combo
Marinescu> and I can use it if I have no other option. However, at
Marinescu> this point my application (which is quite critical)
Marinescu> blocks every task switching combination (ctrl+atl+del
Marinescu> included, together with alt+tab and all the others) in
Marinescu> order to force the user to use this application and
Marinescu> ONLY this application. If I choose the "image save"
Marinescu> option I'll be forced to give up this feature, and I
Marinescu> don't want that, as I _KNOW_ that they'll start to play
Marinescu> starcraft in a flash :) Unless there is some Python
Marinescu> source somewhere that can send an image to the
Marinescu> printer. I've been searching for it, but never found
Marinescu> it. I also had this problem with PyPlot, that offers
Marinescu> printing functions, but they don't seem to work :(
Marinescu> (this was tested on two different printers). Then
Marinescu> again, the "Print framework" sample from the wxPython
Marinescu> 2.5.1.5 demo also crashed when trying to print, so I
Marinescu> imagine that the printing support in wxPython is not at
Marinescu> its best at this point :( If anybody has a solution for
Marinescu> this, please let me know. Thank you all for your help.
cross platform printing is pretty hard, and cross-gui/cross-platform
printing is event harder. If you get wx printing figured out and want
to submit some code, I'd be happy to include it. When I was initially
trying to decide on a GUI for my own application work, poor printing
support in wx the thing that initially steered me to GTK.
JDH
|