<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2600.0" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial size=2>
<DIV><FONT face=Arial size=2>Hi,</FONT></DIV>
<DIV><FONT face=Arial size=2>First, let me thank you for providing and 
maintaining&nbsp;the PyQt package!&nbsp; As a feedback, we compiled 
and&nbsp;installed sucessfully your package and demos</FONT></DIV>
<DIV><FONT face=Arial size=2>for the commercial Qt3.0.4 and Qt3.0.5 versions on 
Win2K (the latest PyQt 3.3&nbsp;and&nbsp;sip3.3.2 versions!).</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>Now my problem, which I think is a very fundamental 
one,&nbsp;that needs&nbsp;to be&nbsp;resolved to make a &nbsp;PyQt 
</FONT>&nbsp;<FONT face=Arial size=2>based, interactive</FONT></DIV>
<DIV><FONT face=Arial size=2>plotting package:</FONT></DIV>
<DIV><FONT face=Arial size=2>I&nbsp;am banging my head against the wall in 
trying to get PyQt (or PyQwt) to allow for INTERACTIVE plotting</FONT></DIV>
<DIV><FONT face=Arial size=2>such as with the scipy.gplt (using gnuplot)&nbsp;or 
scipy.plt (using wxWindows)&nbsp;&nbsp;packages. I want a similar API as matlab 
plotting commands or 
<DIV><FONT face=Arial size=2>the scipy.plt API but based on PyQt (and/or PyQwt 
but the problem is at the PyQt eventloop and threading&nbsp;level). 
</FONT></DIV>
<DIV>&nbsp;</DIV>All examples with PyQt (and PyQwt demos etc) assume that one 
has only</FONT></DIV>
<DIV><FONT face=Arial size=2>ONE pyqt&nbsp;app&nbsp;running and, if called as a 
script,&nbsp;block the python interpreter&nbsp;until the PyQt window is closed 
--&nbsp;or one runs each demo as a stand alone app.</FONT></DIV>
<DIV><FONT face=Arial size=2>In order to do INTERACTIVE plotting one needs to 
issue plot commands from the&nbsp; python interpeter command line such 
as:</FONT></DIV>
<DIV>
<P><FONT face=Arial size=2>&gt;&gt;&gt;&nbsp; import qplt</FONT></P>
<P><FONT face=Arial size=2>&gt;&gt;&gt; x = [0,1,2,3, 4]; y = 
[0,1.5,3,1.5,0]</FONT></P>
<P><FONT face=Arial size=2>&gt;&gt;&gt; fig1 = qplt.plot(x,y)&nbsp;&nbsp; # 
creates a figure window with default axes and line plot with x versus y and 
returns control to the interpreter</FONT></P>
<P><FONT face=Arial size=2>&gt;&gt;&gt; qplt.xlabel("x-axis")&nbsp; # adds a 
x-label to the current axes in the current figure</FONT></P>
<P><FONT face=Arial size=2>&gt;&gt;&gt; qplt.ylabel("y-axis")&nbsp; # adds a 
y-label to the current axes in the current figure</FONT></P>
<P><FONT face=Arial size=2>&gt;&gt;&gt; fig2 = qplt.figure()&nbsp;&nbsp; 
&nbsp;#&nbsp; creates a&nbsp;second figure window and all subsequent commands 
(plot(), xlabel() etc.) &nbsp;apply to this new window</FONT></P>
<P><FONT face=Arial size=2>etc, etc</FONT></P>
<P>In order to get such functionality one needs to create a qt qApp singleton, a 
figure&nbsp;main-window, start the&nbsp;eventloop in a separate thread (either 
python thread or QThread) and gives control back to the interpeter&nbsp;to let 
the user issue new commands (e.g. another figure 
main-window)&nbsp;interactively.</P>
<P>This seems to be a simple and natural approach to interactive plotting, but I 
have not found any example or idea based on pyQt that would give me a hint how 
to&nbsp;prevent the Qt eventloop qApp.exec_loop() blocking the interpreter or 
how to add new QMainWindows from the interpreter after the eventloop is already 
running in a separate python thread.</P></DIV>
<DIV><FONT face=Arial size=2>&nbsp;So far I have managed to to </FONT><FONT 
face=Arial size=2>open a pyqt figure-window from the interpreter </FONT><FONT 
face=Arial size=2>by wrapping the main()&nbsp; with the eventloop 
qApp.exec_loop() into a python thread; but then I can't open another window from 
the main thread. Using the QThread class didn't help at all: the subclassed 
myQThread.run() does never give control back to the interpeter if it contains 
the qApp.exec_loop(), and myQThread.start() does never call myQThread.run() but 
the dummy QThread.run().&nbsp; It is not clear from the Qt (and PyQt) docu if it 
is possible to run the main&nbsp;Qt eventloop in a QThread; in my experiments it 
always blocked </FONT></DIV>
<DIV>any GUI.</DIV>
<DIV><FONT face=Arial size=2></FONT><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>I have tried and tried (using all possible varaints 
of python threads as well as QThread ) and can't figure out how to do 
it.</FONT></DIV>
<DIV><FONT face=Arial size=2>Do you have any idea how to do real *INTERACTIVE* 
plotting with PyQt? Essentially all that needs to be done is to start a qApp and 
qt eventloop in a separate thread and launch several&nbsp;figure windows 
and&nbsp; from the python interpreter thread.</FONT></DIV>
<DIV><FONT face=Arial size=2>Since this is a fundamental problem that many 
people in the scientific area </FONT><FONT face=Arial size=2>need resolved I 
hope that someone on this list&nbsp;(or maybe someone you know)&nbsp;knows 
alread how to do this!</FONT></DIV>
<DIV><FONT face=Arial size=2>Any pointers, ideas&nbsp;or sample code would be 
GREAT!</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>Thanks in advance,</FONT></DIV>
<DIV><FONT face=Arial size=2>Peter Lipa</FONT></DIV>
<DIV><FONT face=Arial size=2><A 
href="mailto:porl3141@hotmail.com">porl3141@hotmail.com</A></FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV></FONT></DIV></BODY></HTML>