Re: [Matplotlib-users] Qt4 Designer Example
That will be up to him. The only reason why I know about the work is because our publisher wanted to make sure that our two books didn't cover the same material. He isn't a regular on the mailing list, so I don't know if he even would see this message. I'll let him know that there is interest. Ben Root On Wed, Apr 15, 2015 at 9:16 PM, Chris O'Halloran cmo...@gmail.com wrote: On 16 April 2015 at 09:51, Benjamin Root ben.r...@ou.edu wrote: A little birdie has told me that someone else is writing a new comprehensive matplotlib book (I think it would replace Sandros' book). Last I heard from the birdie, he was most of the way done with the manuscript. Based on my experience with the edit/review process, I would guess 2-3 more months to see it finished and published. Oh cool. I'll look out for this. Will it be advertised on this list? -- BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT Develop your own process in accordance with the BPMN 2 standard Learn Process modeling best practices with Bonita BPM through live exercises http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_ source=Sourceforge_BPM_Camp_5_6_15utm_medium=emailutm_campaign=VA_SF ___ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users -- BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT Develop your own process in accordance with the BPMN 2 standard Learn Process modeling best practices with Bonita BPM through live exercises http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_ source=Sourceforge_BPM_Camp_5_6_15utm_medium=emailutm_campaign=VA_SF___ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users
Re: [Matplotlib-users] Qt4 Designer Example
A little birdie has told me that someone else is writing a new comprehensive matplotlib book (I think it would replace Sandros' book). Last I heard from the birdie, he was most of the way done with the manuscript. Based on my experience with the edit/review process, I would guess 2-3 more months to see it finished and published. Cheers! Ben Root On Wed, Apr 15, 2015 at 5:43 PM, Chris O'Halloran cmo...@gmail.com wrote: That's cool. I just found the book provided the right level of detail for me to start using QtDesigner with my projects. I can't speak for PyQt5 but I don't see the concepts have changed much over the past 5 or so years. Agreed though, if you're brand new to python and are only familiar with python3 then typing in the code verbatim (python2 style) may cause you problems that frustrate the learning process. On 15 April 2015 at 19:49, Christian Ambros ambr...@ymail.com wrote: No offense, but it really is outdated. Consider that it'll take two years to do the writing and the lecture work the research material is form 2007 to 2008. We now are in 2015. As you can tell from other books which have been published between 2013 and a really helpy book from March, 24th 2015 (yes, Benjamin Root wrote it), even they don't cover latest enhancements up to six month before print, (which might be seen a reasonable since changing is easy in a digitized world like ours). A good tutorial for the once, who do not have much experience in this field (I count myself in with the just one and a half year of experience in gui programming) is two things, actual up to six month to a year and straight forward, meaning It tells you what to do and doesn't bother you with design thoughts, API explanations nor tries to teach you programming. I have that book in my possession, but it didn't turn out to be helpful if you do not have the time do read it in whole. If you have the time to spin freely, you still will have conquered 80% by yourself and because it is still outdated for pyhton3 and matplotlib 1.4.3 the use is questionable. cheers, Christian -- A little learning never caused anyone's head to explode! Ein wenig Lernen hat noch niemandens Kopf zum Explodieren gebracht! On Wednesday, April 15, 2015 3:44 AM, Chris O'Halloran cmo...@gmail.com wrote: Can I recommend this book. It was very helpful to me in figuring much of this out. https://www.packtpub.com/application-development/matplotlib-python-developers On 14 April 2015 at 18:14, Christian Ambros ambr...@ymail.com wrote: Hi Ryan, wow! This tutorial is one of the best I ever encountered. Nothing is missing, nothing is cryptic or unclear. What I like best is, that it get's along without using Qt Designer plugins or something similar strange. It's a good basis to start. Maybe you should write a book, covering all the untold things one needs to solve problems like that. I browsed through plenty of books the last weeks and what really is missing, is a cookbook about Qt Designer, Glade and wxWidgets and how to fill it with python3 and it's lib's like matplotlib, pyqtgraph, numpy, sympy etc. I would buy it right away! cheers, Christian -- A little learning never caused anyone's head to explode! Ein wenig Lernen hat noch niemandens Kopf zum Explodieren gebracht! On Friday, April 10, 2015 7:14 PM, Ryan Nelson rnelsonc...@gmail.com wrote: Christian, As it turns out, I wrote a blog post (for my terrible blog) about using Designer to create a MPL based GUI ( http://blog.rcnelson.com/building-a-matplotlib-gui-with-qt-designer-part-1/). I was going to write this up for the MPL docs... But it got really long (3 parts), so I just used my personal site. It got so long because this was the second time I needed to figure this out, and I wanted to make a very detailed outline for my own future reference. Unfortunately, I don't have any experience with Qt5, but I imagine things are similar. I think they just rearranged the locations of some of the widgets, but I'd be curious to hear your experience. I gave up on PyQtdesignerplugins. I think it makes more sense to just use a generic widget as the MPL container. I would be very happy if you had comments for my Qt designer posts. Ryan On Wed, Apr 8, 2015 at 5:47 AM, Christian Ambros ambr...@ymail.com wrote: Hi Ryan, could you write down, as a tutorial, how you built the example with the qt designer? In the last hours I read all most everything what can be found on the issue of getting matplotlib running with pyqt5 and the designer but as you realized yourself, there is little to be found handy. I'm stuck at a project, which has to use python3, and pyqt5 and am not allowed by my boss to fall back to pyqt4 or qt_compat. He wants to make sure that we use the latest revisions. So I#m very pleased to read that someone already set food on this terrain. Qt5.4.1 is running and I installed PyQtdesingerplugins, in mind that they
Re: [Matplotlib-users] Qt4 Designer Example
On 16 April 2015 at 09:51, Benjamin Root ben.r...@ou.edu wrote: A little birdie has told me that someone else is writing a new comprehensive matplotlib book (I think it would replace Sandros' book). Last I heard from the birdie, he was most of the way done with the manuscript. Based on my experience with the edit/review process, I would guess 2-3 more months to see it finished and published. Oh cool. I'll look out for this. Will it be advertised on this list? -- BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT Develop your own process in accordance with the BPMN 2 standard Learn Process modeling best practices with Bonita BPM through live exercises http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_ source=Sourceforge_BPM_Camp_5_6_15utm_medium=emailutm_campaign=VA_SF___ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users
Re: [Matplotlib-users] Qt4 Designer Example
Hi Ryan, wow! This tutorial is one of the best I ever encountered. Nothing is missing, nothing is cryptic or unclear. What I like best is, that it get's along without using Qt Designer plugins or something similar strange. It's a good basis to start. Maybe you should write a book, covering all the untold things one needs to solve problems like that. I browsed through plenty of books the last weeks and what really is missing, is a cookbook about Qt Designer, Glade and wxWidgets and how to fill it with python3 and it's lib's like matplotlib, pyqtgraph, numpy, sympy etc. I would buy it right away!cheers,Christian -- A little learning never caused anyone's head to explode! Ein wenig Lernen hat noch niemandens Kopf zum Explodieren gebracht! On Friday, April 10, 2015 7:14 PM, Ryan Nelson rnelsonc...@gmail.com wrote: Christian, As it turns out, I wrote a blog post (for my terrible blog) about using Designer to create a MPL based GUI (http://blog.rcnelson.com/building-a-matplotlib-gui-with-qt-designer-part-1/). I was going to write this up for the MPL docs... But it got really long (3 parts), so I just used my personal site. It got so long because this was the second time I needed to figure this out, and I wanted to make a very detailed outline for my own future reference. Unfortunately, I don't have any experience with Qt5, but I imagine things are similar. I think they just rearranged the locations of some of the widgets, but I'd be curious to hear your experience. I gave up on PyQtdesignerplugins. I think it makes more sense to just use a generic widget as the MPL container. I would be very happy if you had comments for my Qt designer posts. Ryan On Wed, Apr 8, 2015 at 5:47 AM, Christian Ambros ambr...@ymail.com wrote: Hi Ryan, could you write down, as a tutorial, how you built the example with the qt designer?In the last hours I read all most everything what can be found on the issue of getting matplotlib running with pyqt5 and the designer but as you realized yourself, there is little to be found handy. I'm stuck at a project, which has to use python3, and pyqt5 and am not allowed by my boss to fall back to pyqt4 or qt_compat. He wants to make sure that we use the latest revisions. So I#m very pleased to read that someone already set food on this terrain. Qt5.4.1 is running and I installed PyQtdesingerplugins, in mind that they were written for PyQt4. Are they usable in 5? I added the env-variables to my bashrc, did get any changes shown in the designer. Of course I did a re-log-in to start fresh, but any changes were noteable.What possible ways of embedding matplotlib into a designer base pyqt5-gui else, are there? cheers,Christian -- A little learning never caused anyone's head to explode! Ein wenig Lernen hat noch niemandens Kopf zum Explodieren gebracht! On Wednesday, February 18, 2015 11:59 PM, Ryan Nelson rnelsonc...@gmail.com wrote: Hello list, A couple months ago, I spent quite a bit of time trying to figure out how to use Qt designer create a GUI with an embedded MPL window. Unfortunately, the Scipy cookbook page (http://wiki.scipy.org/Cookbook/Matplotlib/Qt_with_IPython_and_Designer) is very outdated. A recent post (http://matplotlib.1069221.n5.nabble.com/Re-Keep-list-of-figures-or-plots-and-flip-through-list-using-UI-td44961.html) brought up some questions about a use case very similar to mine, so I redid my example and was going to write a quick tutorial for the docs. Unfortunately, I'm not a Qt guru, so I thought that I would ask on the list for some advice. The OP and I were both interested in being able to have a list of figures that you could select from to change the plot window. The embedding examples in the docs create subclasses of FigureClass* and embed the plotting figure/axes/etc. This works but gets tricky, though, when trying to switch plots. Also, for interactive IPython work, I didn't like that the plotting objects were mixed in with all the QtGui.QWidget attributes, which makes introspective searching painful. My solution was to create a dictionary of matplotlib.figure.Figure objects that had all of the plotting stuff defined. Then when I select a new plot from the list, the old one is removed and a new FigureClass object is created using the selected Figure object. Has anyone else successfully done something like this? Is there a better way? Also, it seems if I zoom the current plot, change to a new plot, and change back, the zoom region is retained. Anyone know how to reset the zoom region? Attached is my example: window.py is the Designer-created main window and custommpl.py is the subclass of the main window that I wrote. It's about as short as I could make it. Thanks Ryan -- Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server from Actuate! Instantly Supercharge Your Business Reports and Dashboards
Re: [Matplotlib-users] Qt4 Designer Example
Hi Ryan, could you write down, as a tutorial, how you built the example with the qt designer?In the last hours I read all most everything what can be found on the issue of getting matplotlib running with pyqt5 and the designer but as you realized yourself, there is little to be found handy. I'm stuck at a project, which has to use python3, and pyqt5 and am not allowed by my boss to fall back to pyqt4 or qt_compat. He wants to make sure that we use the latest revisions. So I#m very pleased to read that someone already set food on this terrain. Qt5.4.1 is running and I installed PyQtdesingerplugins, in mind that they were written for PyQt4. Are they usable in 5? I added the env-variables to my bashrc, did get any changes shown in the designer. Of course I did a re-log-in to start fresh, but any changes were noteable.What possible ways of embedding matplotlib into a designer base pyqt5-gui else, are there? cheers,Christian -- A little learning never caused anyone's head to explode! Ein wenig Lernen hat noch niemandens Kopf zum Explodieren gebracht! On Wednesday, February 18, 2015 11:59 PM, Ryan Nelson rnelsonc...@gmail.com wrote: Hello list, A couple months ago, I spent quite a bit of time trying to figure out how to use Qt designer create a GUI with an embedded MPL window. Unfortunately, the Scipy cookbook page (http://wiki.scipy.org/Cookbook/Matplotlib/Qt_with_IPython_and_Designer) is very outdated. A recent post (http://matplotlib.1069221.n5.nabble.com/Re-Keep-list-of-figures-or-plots-and-flip-through-list-using-UI-td44961.html) brought up some questions about a use case very similar to mine, so I redid my example and was going to write a quick tutorial for the docs. Unfortunately, I'm not a Qt guru, so I thought that I would ask on the list for some advice. The OP and I were both interested in being able to have a list of figures that you could select from to change the plot window. The embedding examples in the docs create subclasses of FigureClass* and embed the plotting figure/axes/etc. This works but gets tricky, though, when trying to switch plots. Also, for interactive IPython work, I didn't like that the plotting objects were mixed in with all the QtGui.QWidget attributes, which makes introspective searching painful. My solution was to create a dictionary of matplotlib.figure.Figure objects that had all of the plotting stuff defined. Then when I select a new plot from the list, the old one is removed and a new FigureClass object is created using the selected Figure object. Has anyone else successfully done something like this? Is there a better way? Also, it seems if I zoom the current plot, change to a new plot, and change back, the zoom region is retained. Anyone know how to reset the zoom region? Attached is my example: window.py is the Designer-created main window and custommpl.py is the subclass of the main window that I wrote. It's about as short as I could make it. Thanks Ryan -- Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server from Actuate! Instantly Supercharge Your Business Reports and Dashboards with Interactivity, Sharing, Native Excel Exports, App Integration more Get technology previously reserved for billion-dollar corporations, FREE http://pubads.g.doubleclick.net/gampad/clk?id=190641631iu=/4140/ostg.clktrk ___ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users -- BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT Develop your own process in accordance with the BPMN 2 standard Learn Process modeling best practices with Bonita BPM through live exercises http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_ source=Sourceforge_BPM_Camp_5_6_15utm_medium=emailutm_campaign=VA_SF___ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users
[Matplotlib-users] Qt4 Designer Example
Hello list, A couple months ago, I spent quite a bit of time trying to figure out how to use Qt designer create a GUI with an embedded MPL window. Unfortunately, the Scipy cookbook page ( http://wiki.scipy.org/Cookbook/Matplotlib/Qt_with_IPython_and_Designer) is very outdated. A recent post ( http://matplotlib.1069221.n5.nabble.com/Re-Keep-list-of-figures-or-plots-and-flip-through-list-using-UI-td44961.html) brought up some questions about a use case very similar to mine, so I redid my example and was going to write a quick tutorial for the docs. Unfortunately, I'm not a Qt guru, so I thought that I would ask on the list for some advice. The OP and I were both interested in being able to have a list of figures that you could select from to change the plot window. The embedding examples in the docs create subclasses of FigureClass* and embed the plotting figure/axes/etc. This works but gets tricky, though, when trying to switch plots. Also, for interactive IPython work, I didn't like that the plotting objects were mixed in with all the QtGui.QWidget attributes, which makes introspective searching painful. My solution was to create a dictionary of matplotlib.figure.Figure objects that had all of the plotting stuff defined. Then when I select a new plot from the list, the old one is removed and a new FigureClass object is created using the selected Figure object. Has anyone else successfully done something like this? Is there a better way? Also, it seems if I zoom the current plot, change to a new plot, and change back, the zoom region is retained. Anyone know how to reset the zoom region? Attached is my example: window.py is the Designer-created main window and custommpl.py is the subclass of the main window that I wrote. It's about as short as I could make it. Thanks Ryan # -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'test2.ui' # # Created: Wed Feb 18 18:20:27 2015 # by: PyQt4 UI code generator 4.11.3 # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore, QtGui try: _fromUtf8 = QtCore.QString.fromUtf8 except AttributeError: def _fromUtf8(s): return s try: _encoding = QtGui.QApplication.UnicodeUTF8 def _translate(context, text, disambig): return QtGui.QApplication.translate(context, text, disambig, _encoding) except AttributeError: def _translate(context, text, disambig): return QtGui.QApplication.translate(context, text, disambig) class Ui_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName(_fromUtf8(MainWindow)) MainWindow.resize(800, 600) self.centralwidget = QtGui.QWidget(MainWindow) self.centralwidget.setObjectName(_fromUtf8(centralwidget)) self.gridLayout = QtGui.QGridLayout(self.centralwidget) self.gridLayout.setObjectName(_fromUtf8(gridLayout)) self.mplfigs = QtGui.QListWidget(self.centralwidget) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.mplfigs.sizePolicy().hasHeightForWidth()) self.mplfigs.setSizePolicy(sizePolicy) self.mplfigs.setMaximumSize(QtCore.QSize(200, 16777215)) self.mplfigs.setObjectName(_fromUtf8(mplfigs)) self.gridLayout.addWidget(self.mplfigs, 0, 1, 1, 1) self.mplwindow = QtGui.QWidget(self.centralwidget) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.mplwindow.sizePolicy().hasHeightForWidth()) self.mplwindow.setSizePolicy(sizePolicy) self.mplwindow.setObjectName(_fromUtf8(mplwindow)) self.gridLayout.addWidget(self.mplwindow, 0, 0, 1, 1) MainWindow.setCentralWidget(self.centralwidget) self.retranslateUi(MainWindow) QtCore.QMetaObject.connectSlotsByName(MainWindow) def retranslateUi(self, MainWindow): MainWindow.setWindowTitle(_translate(MainWindow, MainWindow, None)) import sys from PyQt4 import QtGui import numpy as np from matplotlib.figure import Figure from matplotlib.backends.backend_qt4agg import ( FigureCanvasQTAgg as FigureCanvas, NavigationToolbar2QT as NavigationToolbar) from window import Ui_MainWindow class Main(QtGui.QMainWindow, Ui_MainWindow): def __init__(self, ): super(Main, self).__init__() self.setupUi(self) self.mplvl = QtGui.QVBoxLayout(self.mplwindow) self.mplfigs.itemClicked.connect(self.changefig) fig = Figure() self.addmpl(fig) def addfigs(self, fig_dict): self.fig_dict = fig_dict names = list(fig_dict.keys()) self.mplfigs.addItems(names) def addmpl(self, fig): self.canvas = FigureCanvas(fig)