Darren Dale wrote:
> On Saturday 19 August 2006 12:47, Charlie Moad wrote:
>
>> On 8/19/06, Darren Dale <dd55@...> wrote:
>>
>>> On Friday 18 August 2006 08:27, Darren Dale wrote:
>>>
>>>> On Wednesday 16 August 2006 04:54, Samuel GARCIA wrote:
>>>>
>>>>> Thank you,
>>>>> Sorry I did known the existence of
>>>>> matplotlib.backends.backend_qt4agg. It is more easy than I thought.
>>>>>
>>>>> but I still have a problem. This is my code :
>>>>>
>>>>> import sys
>>>>>
>>>>> from PyQt4.QtCore import *
>>>>> from PyQt4.QtGui import *
>>>>>
>>>>> from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as
>>>>> FigureCanvas
>>>>> from matplotlib.figure import Figure
>>>>>
>>>>> #--------------------------------------------------------------------
>>>>> ---- -- ---- class MyWidget(QWidget):
>>>>> def __init__(self, parent=None):
>>>>> QWidget.__init__(self, parent)
>>>>> self.menuBar = QMenuBar()
>>>>> self.fileMenu = QMenu(self.tr("&File"), self)
>>>>> self.menuBar.addMenu(self.fileMenu)
>>>>>
>>>>> mainLayout = QVBoxLayout()
>>>>> mainLayout.setMenuBar(self.menuBar)
>>>>>
>>>>> self.setLayout(mainLayout)
>>>>>
>>>>> #--------------------------------------------------------------------
>>>>> ---- -- ---- if __name__ == "__main__":
>>>>> app = QApplication(sys.argv)
>>>>> dialog = MyWidget()
>>>>> dialog.show()
>>>>> sys.exit(app.exec_())
>>>>>
>>>>> and it does not works because the main window is blocking.
>>>>>
>>> There is a comment in the embedding_in_qt.py example:
>>>
>>> # The QApplication has to be created before backend_qt is imported,
>>> otherwise # it will create one itself.
>>>
>>> This goes for qt4 as well, and is the source of the problem. You can have
>>> only one QApplication at a time. (Ted, John, do you think the
>>> QApplication really needs to be created during the module import? show()
>>> is the only function that looks for the QApplication, maybe the qApp
>>> should be created there instead. Any reason against?)
>>>
>>> I added an example, embedding_in_qt4.py, to the svn repository. It is
>>> closely based on embedding_in_qt.py.
>>>
>> From what I saw, creating QApp in show makes more sense.
>>
>
> I changed the qt backends to create a QApplication in show() rather than at
> the time of module import. I also updated the embedding_in_qt* examples.
> Samuel, as of svn 2711, you are free to create your QApplication *after* you
> import backend_qt(4).
>
> Darren
>
> P.S.- For anyone who is interested, I'd recommend "C++ GUI Programming with Qt
> 4" (available at Amazon). I'm not an experienced C++ programmer, but the book
> has an excellent (and brief) introduction to C++ in the appendix, and is easy
> enough to understand for anyone who wants to work with PyQt4.than you
Thank you,
for the moment It is not a problem for me te create the QApplication
before.
I have just 1 week to finish my project. And I use the debian package.
So I don't have time to install svn version for the moment.
I will try it in 2 or 3 weeks.
Programming wyth PyQt4 and matplotlib is really great. You can create
little but good loocking application in a very short time.
Thany you for every people involved in these projects.
Samuel
|