Dear All,
I hope this is not too off-topic. Given you Python code, relying on SciPy for number-crunching, which tools would you use to create a GUI in order to allow someone else to use it, without his knowing much (or anything) about scipy and programming?I know Python is great for this, but I do not know of anything specific. Cheers Lorenzo -- I went to the race track once and bet on a horse that was so good that it took seven others to beat him! _______________________________________________ SciPy-user mailing list [hidden email] http://projects.scipy.org/mailman/listinfo/scipy-user |
On Sun, Jan 25, 2009 at 10:40:39AM +0100, Lorenzo Isella wrote:
> I hope this is not too off-topic. Given you Python code, relying on > SciPy for number-crunching, which tools would you use to create a GUI > in order to allow someone else to use it, without his knowing much (or > anything) about scipy and programming?I know Python is great for this, > but I do not know of anything specific. I would use traits (see http://code.enthought.com/projects/traits/documentation.php, and http://code.enthought.com/projects/traits/docs/html/tutorials/traits_ui_scientific_app.html for documentation and a tutorial) The pro of traits is that it is really easy to use, and enforces good software design. The cons are that it is still not as mainstream as we would like. As a result it is not installed on all computers. It is however shipped with both major scientific Python distribution (python(x,y) and ETS), as well as in ubuntu as debian, mandriva, and is currently being packaged for fedora. Gaël _______________________________________________ SciPy-user mailing list [hidden email] http://projects.scipy.org/mailman/listinfo/scipy-user |
In reply to this post by Lorenzo Isella
Lorenzo Isella wrote: > Dear All, > I hope this is not too off-topic. Given you Python code, relying on > SciPy for number-crunching, which tools would you use to create a GUI > in order to allow someone else to use it, without his knowing much (or > anything) about scipy and programming?I know Python is great for this, > but I do not know of anything specific. > I would use wxPython to create the GUI (or maybe PyQt now the Qt license has changed). You can either create MatLab like environments, like this http://mientki.ruhosting.nl/data_www/pylab_works/pw_animations_screenshots.html or Labview like environments like http://mientki.ruhosting.nl/data_www/pylab_works/pw_manual.pdf and here a demo of program with a extensive set of VPython-5 applications http://mientki.ruhosting.nl/data_www/pylab_works/pw_application_vpython3.html cheers, Stef > Cheers > > Lorenzo > > _______________________________________________ SciPy-user mailing list [hidden email] http://projects.scipy.org/mailman/listinfo/scipy-user |
In reply to this post by Gael Varoquaux
2009/1/25 Gael Varoquaux <[hidden email]>:
> I would use traits (see > http://code.enthought.com/projects/traits/documentation.php, and > http://code.enthought.com/projects/traits/docs/html/tutorials/traits_ui_scientific_app.html > for documentation and a tutorial) > > The pro of traits is that it is really easy to use, and enforces good > software design. I can add my voice to Gael's here. Just last week I advised a colleague, who wanted to build a GUI to a filter design package, to consider Traits. After only one day, he had his whole application running, and spent the rest of the week tweaking small features to his liking. Having that kind of power is hard to imagine! Whereas widget toolkits provide fundamental building blocks, Traits provides much more: a well thought-through user-interface framework that evolved through a company's need to rapidly deploy GUIs for scientific applications. I easily put my trust in code that is backed by the collective experience of so many talented programmers! Regards Stéfan _______________________________________________ SciPy-user mailing list [hidden email] http://projects.scipy.org/mailman/listinfo/scipy-user |
In reply to this post by Lorenzo Isella
For now I would use wxPython and wxFormBuilder for this. Here is what I require from a GUI toolkit: - The GUI should be constructed using a GUI builder. - The GUI should be able to embed matplotlib. - Support for OpenGL. - It should look good on Windows, Linux and MacOSX. - A liberal license. Here is an example on how to use wxFormBuilder with Python: http://folk.uio.no/sturlamo/HelloWorld.py http://folk.uio.no/sturlamo/HelloWorld.xrc http://folk.uio.no/sturlamo/HelloWorld.fbp There is more information on how to use XRC files with wxPython here: http://wiki.wxpython.org/index.cgi/XRCTutorial http://wiki.wxpython.org/UsingXmlResources I generally think Qt is better than wxWidgets, but until now the license has deterred me from using it. I am not use how well QtDesigner works with PyQt, and if matplotlib can be embedded. But when Qt and PyGTL become released under LGPL, I will take a look at it again. If you work on Windows only, there is a second option as well: Use Visual Basic or Borland Delphi. Wrap your Python code as an ActiveX object using pywin32. Look in Mark Hammond's book for examples on how to do this. Regards, Sturla Molden _______________________________________________ SciPy-user mailing list [hidden email] http://projects.scipy.org/mailman/listinfo/scipy-user |
In reply to this post by Gael Varoquaux
On Sunday 25 January 2009, Gael Varoquaux wrote:
> It is however > shipped with both major scientific Python distribution (python(x,y) > and ETS), as well as in ubuntu as debian, mandriva, and is > currently being packaged for fedora. You should really ask the Open-Suse guys to package Traits too (and maybe some other interesting stuff from Enthought). From your introduction Traits seems very good for quickly putting a user interface on a numerical program. Numpy, Scipy and Matplotlib for Suse are here: http://download.opensuse.org/repositories/science/openSUSE_11.1/ Some details: http://download.opensuse.org/repositories/science/openSUSE_11.1/repodata/repoview/Development.Libraries.Python.group.html The people who work on it seem to be some volunteers: [hidden email] Werner Hoch <werner{*}ho{%}gmx{*}de> Felix Richter <felix{*}richter2{%}uni-rostock{*}de> Kind Regards, Eike. _______________________________________________ SciPy-user mailing list [hidden email] http://projects.scipy.org/mailman/listinfo/scipy-user |
In reply to this post by Gael Varoquaux
Gael,
I almost sent a similar question a few days ago about making a GUI app so I'll tag along here. I'm trying to make a GUI application to QA/QC field data. I need to pull data from a text file or database. Explore it and choose points (ie bad data etc) to delete etc. I have virtually no experience in GUI programming except for some stuff with visual C++ over 10 years ago that I vaguely remember. I've read your tutorial using traits and matplotlib and also a little bit of some of the Chaco examples. But I'm struggling to decide whether to go with traits + matplotlib or with chaco. I've also read some of the older mailing list discussions about chaco and matplotlib but those don't focus so much on GUI applications. On one hand, I am already using matplotlib and the timeseries toolkit extensively in scripts so I'm familiar with them and know that they can make pretty much any type of plot I need. Also matplotlib has a large community. On the other hand, chaco seems to have been designed for this type of interactive application and the plots I need for the GUI app are simpler and are supported by Chaco. Do you (or any others) have any comments about the pros and cons of each for someone new at this stuff. thanks, - dharhas >>> Gael Varoquaux <[hidden email]> 1/25/2009 4:05 AM >>> On Sun, Jan 25, 2009 at 10:40:39AM +0100, Lorenzo Isella wrote: > I hope this is not too off-topic. Given you Python code, relying on > SciPy for number-crunching, which tools would you use to create a GUI > in order to allow someone else to use it, without his knowing much (or > anything) about scipy and programming?I know Python is great for this, > but I do not know of anything specific. I would use traits (see http://code.enthought.com/projects/traits/documentation.php, and http://code.enthought.com/projects/traits/docs/html/tutorials/traits_ui_scientific_app.html for documentation and a tutorial) The pro of traits is that it is really easy to use, and enforces good software design. The cons are that it is still not as mainstream as we would like. As a result it is not installed on all computers. It is however shipped with both major scientific Python distribution (python(x,y) and ETS), as well as in ubuntu as debian, mandriva, and is currently being packaged for fedora. Gaël _______________________________________________ SciPy-user mailing list [hidden email] http://projects.scipy.org/mailman/listinfo/scipy-user _______________________________________________ SciPy-user mailing list [hidden email] http://projects.scipy.org/mailman/listinfo/scipy-user |
> I've read your tutorial using traits and matplotlib and also a little
> bit of some of the Chaco examples. But I'm struggling to decide whether > to go with traits + matplotlib or with chaco. I've also read some of the > older mailing list discussions about chaco and matplotlib but those > don't focus so much on GUI applications. Chaco can easily be used with Traits. In fact Enthought develops both, so it's in their best interest that everything is fine. I didn't use Chaco in the past, so I don't have an opinion. > On one hand, I am already using matplotlib and the timeseries toolkit > extensively in scripts so I'm familiar with them and know that they can > make pretty much any type of plot I need. Also matplotlib has a large > community. > > On the other hand, chaco seems to have been designed for this type of > interactive application and the plots I need for the GUI app are simpler > and are supported by Chaco. > > Do you (or any others) have any comments about the pros and cons of > each for someone new at this stuff. Matthieu -- Information System Engineer, Ph.D. Website: http://matthieu-brucher.developpez.com/ Blogs: http://matt.eifelle.com and http://blog.developpez.com/?blog=92 LinkedIn: http://www.linkedin.com/in/matthieubrucher _______________________________________________ SciPy-user mailing list [hidden email] http://projects.scipy.org/mailman/listinfo/scipy-user |
In reply to this post by Dharhas Pothina
> On one hand, I am already using matplotlib and the timeseries toolkit > extensively in scripts so I'm familiar with them and know that they can > make pretty much any type of plot I need. Also matplotlib has a large > community. Matplotlib is excellent for plotting, but its disadvantage is lack of speed when the data sets are large. I have seen matplotlib spend 5 minutes to plot a digitized signal, whereas OpenGL could do the same in an eye-blink. But yes, matplotlib creates very nice looking graphics, and it's pylab interface is familiar enough to old Matlab users like myself. As I said in a previous post, Matplotlib and wxPython can easily be integrated. There is examples of this on the Matplotlib website. S.M. _______________________________________________ SciPy-user mailing list [hidden email] http://projects.scipy.org/mailman/listinfo/scipy-user |
In reply to this post by Dharhas Pothina
Quickly,
On Mon, Jan 26, 2009 at 08:30:39AM -0600, Dharhas Pothina wrote: > I've read your tutorial using traits and matplotlib and also a little > bit of some of the Chaco examples. But I'm struggling to decide whether > to go with traits + matplotlib or with chaco. I've also read some of the > older mailing list discussions about chaco and matplotlib but those > don't focus so much on GUI applications. > On one hand, I am already using matplotlib and the timeseries toolkit > extensively in scripts so I'm familiar with them and know that they can > make pretty much any type of plot I need. Also matplotlib has a large > community. > On the other hand, chaco seems to have been designed for this type of > interactive application and the plots I need for the GUI app are simpler > and are supported by Chaco. > Do you (or any others) have any comments about the pros and cons of > each for someone new at this stuff. Matlplotlib has a huge user base and an excellent documentation. It can be inserted in Traits (I have shown it in my tutorial). It is suitable for GUI developement with Traits. Many people have done it, including me. On the other hand, matplotlib's model is very much imperative and script-based. This makes it easy to understand, but really is not the right paradigm for interactive applications in an object-oriented language. Chances are that, unless you are very experienced with the MVC pattern and interactive application design, you will make architectural errors when building an interactive application with Matplotlib. Chaco will constrain you, force you to do things according to its model, which you will hate (we all did at some point), but later on you will be happy that it enforced on you some object-oriented structure, on some separation of concerns (think model-view-controller, which can be transcribed in terms of data-plot-interactor in Chaco). In addition, the fact that Chaco plugs into Traits seemlessly gives you a huge amount of benefit for interactivity. The focus switches from registering callbacks all over the place to reactive programming on attribute modification. Now all this nice and fancy architecture, this "Good" design, and so forth, you may not actually care about, if your application is simple-enough. A poorly designed application has difficulties growing, but what if it will never grow? I could draw a scale with increasing interactivity and complexity, and we could argue where to put the line delimiting Matplotlib land and Chaco land. I use both. Another win of Chaco is speed. You might not care either. Chaco used to be really poorly documented. Things are improving a lot (http://code.enthought.com/projects/chaco/documentation.php). The developers are responsive, on the enthought-dev mailing list. Quite a few people have made the choice of Chaco, and been very happy with it. I can't decide for you, sorry. If you are going to code something large and long-lived, I suggest you spend a few days coding 'hello word' applications in both, exploring things similar to what you will need to code in your final app, and make the decision afterward. The time spent doing this will be neglectible compared to the time spent coding a big app. If you are going to code a very small app, it doesn't really matter. Good luck, Gaël _______________________________________________ SciPy-user mailing list [hidden email] http://projects.scipy.org/mailman/listinfo/scipy-user |
Having just picked up PyQt after doing a lot of work in wxPython, I'm not sure if I'll bother going back to wx. Qt seems to be more well thought out than wx, and QtDesigner saves me a LOT of time. The wx Demo has a larger set of examples, however.
_______________________________________________ SciPy-user mailing list [hidden email] http://projects.scipy.org/mailman/listinfo/scipy-user |
> Having just picked up PyQt after doing a lot of work in wxPython, I'm not > sure if I'll bother going back to wx. Qt seems to be more well thought > out > than wx, and QtDesigner saves me a LOT of time. That is why I use wxFormBuilder for wxPython as well. GUIs should not be designed by hand-writing source code. I will consider switching to Qt when the LGPL version is released. PyQt is clearly superior to wxPython, and QtDesigner is better than wxFormBuilder. But for now: as GPL is viral, anything built with Qt gets tainted with GPL, unless you buy a commercial license. I am not considering the separate commercial PyQt license here; it is the commercial Qt license that costs big bucks. Here are examples of using Matplotlib in wxPython and PyQt GUIs: http://eli.thegreenplace.net/files/prog_code/wx_mpl_bars.py.txt http://eli.thegreenplace.net/files/prog_code/qt_mpl_bars.py.txt Regards, Sturla Molden _______________________________________________ SciPy-user mailing list [hidden email] http://projects.scipy.org/mailman/listinfo/scipy-user |
In reply to this post by Dharhas Pothina
On Mon, Jan 26, 2009 at 9:30 AM, Dharhas Pothina <[hidden email]> wrote:
Gael, I had to make this decision some time ago. I chose chaco, only because I wanted a unified set of features and approach in a GUI application. The downside was that I had to learn how to use chaco when I already knew mpl, and that was at a time when things in Traits and Chaco were changing rapidly. Things now appear to have settled down considerably. The documentation for Chaco is still not what we would like, but it is much better. The place to start is this tutorial: https://svn.enthought.com/svn/enthought/Chaco/trunk/docs/scipy08_tutorial.pdf Don't start with the examples that are available in the svn version of chaco. Those examples use windowing frameworks other than TraitsUI, and they are hard for a beginner to follow. Am I happy with my decision? Well, I'm not sure what would have happened if I chose mpl. My application works perfectly. But I occasionally have to ask questions on this list because the documentation is still a work in progress. Things are better for me since I was directed to the tutorial above. (I *highly* recommend that tutorial.) I still use mpl if my task is to make a plot from scratch, outside of my lab application. -gary _______________________________________________ SciPy-user mailing list [hidden email] http://projects.scipy.org/mailman/listinfo/scipy-user |
In reply to this post by Sturla Molden-2
On Mon, Jan 26, 2009 at 10:59 AM, Sturla Molden <[hidden email]> wrote:
TraitsUI is somewhere in between a graphical builder and writing source code. I've never used wxFormBuilder. I started to use QtDesigner, and in fact I was in the middle of figuring out QtDesigner when I discovered Traits and TraitsUI. I didn't learn QtDesigner well enough to comment in any detail. But I previously used Boa, and I can say with certainty that I find creating a GUI with Traits and TraitsUI to be *much easier* than using Boa. And I was never tempted to go back to QtDesigner. On the other hand, I used to use the Matlab GUI maker, and thought it was pretty easy to use. That was many years ago, now. YMMV. I'm a scientist, not a programmer. I'm hooked on Traits now. Aside from the ease of GUI building, there is the whole Traits way of doing things which very much helps me design my programs. In fact, you can see me quoted here: http://code.enthought.com/projects/index.php -gary
_______________________________________________ SciPy-user mailing list [hidden email] http://projects.scipy.org/mailman/listinfo/scipy-user |
In reply to this post by Gael Varoquaux
Gael Varoquaux wrote:
> On the other hand, matplotlib's model is very much imperative and > script-based. This makes it easy to understand, but really is not the > right paradigm for interactive applications in an object-oriented > language. Chances are that, unless you are very experienced with the MVC > pattern and interactive application design, you will make architectural > errors when building an interactive application with Matplotlib. Chaco > will constrain you, force you to do things according to its model, which > you will hate (we all did at some point), but later on you will be happy > that it enforced on you some object-oriented structure, on some > separation of concerns (think model-view-controller, which can be > transcribed in terms of data-plot-interactor in Chaco). In addition, the > fact that Chaco plugs into Traits seemlessly gives you a huge amount of > benefit for interactivity. The focus switches from registering callbacks > all over the place to reactive programming on attribute modification. Veusz may be an alternative option (disclaimer - I wrote the thing). It is object-based and would naturally fit in a PyQt system as it is written in PyQt. http://home.gna.org/veusz/ You can simply inherit the Veusz SimpleWindow to get a QWidget you can stick in your application. Jeremy _______________________________________________ SciPy-user mailing list [hidden email] http://projects.scipy.org/mailman/listinfo/scipy-user |
In reply to this post by Gael Varoquaux
Thank you all. These comments have been extremely helpful. My initial application is fairly small and uses small datasets, but I'm also looking at this as a learning opportunity for larger applications I hope to write in the future. I think I will try coding this with Chaco. If I find the learning curve too daunting or if it doesn't meet my needs I'll explore the some of the other options that have been suggested. - dharhas _______________________________________________ SciPy-user mailing list [hidden email] http://projects.scipy.org/mailman/listinfo/scipy-user |
Administrator
|
In reply to this post by Gael Varoquaux
Hello,
this post got me interested again into building a GUI for my app. There have been various posts but this one really brings in some great ideas. > http://code.enthought.com/projects/traits/documentation.php, and > http://code.enthought.com/projects/traits/docs/html/tutorials/traits_ui_scientific_app.html > for documentation and a tutorial) Gael, may I ask you to let sphinx create a PDF version for the Trais Docs? I would like to use my offline travelling time to look more into this. It would be nice to have this as a reference with me. Thanks in advance, Timmie _______________________________________________ SciPy-user mailing list [hidden email] http://projects.scipy.org/mailman/listinfo/scipy-user |
Administrator
|
In reply to this post by Dharhas Pothina
Hello!
> I'm trying to make a GUI application to QA/QC field data. I need to > pull data from a text file or database. Explore it and choose points (ie > bad data etc) to delete etc. I have virtually no experience in GUI > programming except for some stuff with visual C++ over 10 years ago that > I vaguely remember. May I ask what kind of data you are working with? I am also using scipy & timeseries for mostly measurement data evaluation. I am working with environmental/climate data. Kind regards, Timmie _______________________________________________ SciPy-user mailing list [hidden email] http://projects.scipy.org/mailman/listinfo/scipy-user |
In reply to this post by Timmie
There are currently issues with building PDFs of Traits documentation
from Sphinx sources. I think currently the best way to have a local copy of the Traits docs is to check out the Traits source. The docs folder should have a pdf, as well as an html.zip. python setup.py build_docs would build html docs from current sources, although I don't think there have been many changes since the last release. To check out Traits: svn co https://svn.enthought.com/svn/enthought/Traits/trunk Docs available online (outdated PDF): http://code.enthought.com/projects/traits/documentation.php -Chris On Mon, Jan 26, 2009 at 3:00 PM, Tim Michelsen <[hidden email]> wrote: > Hello, > this post got me interested again into building a GUI for my app. > There have been various posts but this one really brings in some great > ideas. > >> http://code.enthought.com/projects/traits/documentation.php, and >> http://code.enthought.com/projects/traits/docs/html/tutorials/traits_ui_scientific_app.html >> for documentation and a tutorial) > Gael, may I ask you to let sphinx create a PDF version for the Trais Docs? > I would like to use my offline travelling time to look more into this. > > It would be nice to have this as a reference with me. > > Thanks in advance, > Timmie > > _______________________________________________ > SciPy-user mailing list > [hidden email] > http://projects.scipy.org/mailman/listinfo/scipy-user > SciPy-user mailing list [hidden email] http://projects.scipy.org/mailman/listinfo/scipy-user |
In reply to this post by Timmie
Hi Tim,
I'm working with environmental/climate measurement data too. I also work with hydrodynamic models and comparing results from these to measurement data. The measurement data is mainly water quality parameters (Salinity, Temperature, Depth, D.O etc). Our group collects data in various bays and estuaries in Texas and the last couple of years I've been spearheading an effort to make the way data from the field instruments (collected by us and by other agencies for us) is QA/QC'd and archived in a more systematic and reproducible manner. Original procedures involved lots of manual editing and file mangling with excel with no record of what had been done & why. - dharhas >>> Tim Michelsen <[hidden email]> 1/26/2009 3:07 PM >>> Hello! > I'm trying to make a GUI application to QA/QC field data. I need to > pull data from a text file or database. Explore it and choose points (ie > bad data etc) to delete etc. I have virtually no experience in GUI > programming except for some stuff with visual C++ over 10 years ago that > I vaguely remember. May I ask what kind of data you are working with? I am also using scipy & timeseries for mostly measurement data evaluation. I am working with environmental/climate data. Kind regards, Timmie _______________________________________________ SciPy-user mailing list [hidden email] http://projects.scipy.org/mailman/listinfo/scipy-user _______________________________________________ SciPy-user mailing list [hidden email] http://projects.scipy.org/mailman/listinfo/scipy-user |
Free forum by Nabble | Edit this page |