[PyQt] Re: how to show interactive Picture

Markus Feldmann feldmann_markus at gmx.de
Tue Feb 10 15:02:13 GMT 2009

Mads Ipsen schrieb:
> --------- Original Besked --------
> Fra: Markus Feldmann <feldmann_markus at gmx.de>
> Til: pyqt at riverbankcomputing.com <pyqt at riverbankcomputing.com>
> Emne: [PyQt] Re: how to show interactive Picture
> Dato: 09/02/09 23:58
>> Mads Ipsen schrieb:
>> &gt; Could is be that you try to paint before the window is shown? You
> need to
>> &gt; call show() before you can start painting. The following snippet
> generates
>> &gt; an error similar to yours:
>> Hi,
>> This is not all of my Code. So there is a &lt;show()&gt; in my main source
>> code. This Source Code only shows a sub-widget of a MDI Application.
>> However this window is shown, but without the picture.
>> How do the program know in which widget shall the Pixmap
>> be shown ?
>> _______________________________________________
>> PyQt mailing list    PyQt at riverbankcomputing.com
>> http://www.riverbankcomputing.com/mailman/listinfo/pyqt
> Thats something you tell the program. You reimplement the method
> 'paintEvent' for a widget class like in the example I posted. Then for a
> particular instance of the widget, the window is painted everytime a
> paintEvent occurs and the widget get painted. A paintEvent event occurs eg.
> when a window is hidden underneath another window and then shown.
> To a draw a pixmap onto a widget do something like this in the paintEvent
> method:
>      def paintEvent(self, event):
>         painter = QtGui.QPainter(64,64)
>         pixmap = QtGui.QPixmap()
>         painter.begin(self)
>         painter.drawPixmap(0,0,pixmap)
>         painter.end()
> Mads
I think my Problem is that i have to send an envent?

As you wrote i changed some of my code. I parted my
scrollarea, where i want to paint my picture, and my
mainwindow, which is a MDI Sub-Widget. The scrollarea
will be centered into the MDI Sub-Widget.

class ScrollArea(QScrollArea):
     def __init__(self, parent=None):
         QScrollArea.__init__(self, parent)

         self.pen = QPen()
         self.brush = QBrush()
         self.pixmap = QPixmap()

     def paintEvent(self,  event):
         painter =  QPainter()

         painter.drawPixmap(0,  0,  self.pixmap)

class ReiseHelfer(QMainWindow):
     def __init__(self, parent=None):
         QMainWindow.__init__(self, parent)



         self.scrollArea = ScrollArea()


More information about the PyQt mailing list