[PyQt] SIP wrapper: argument 1 has unexpected type 'QWidget'

Phil Thompson phil at riverbankcomputing.com
Wed Oct 5 08:18:03 BST 2011


On Wed, 05 Oct 2011 10:23:18 +1300, Glenn Ramsey <gr at componic.co.nz>
wrote:
> I'm having some trouble with a simple SIP wrapper for a QWidget derived
> class. 
> I get the error "HostWidget(): argument 1 has unexpected type 'QWidget'"
> but 
> that constructor is supposed to accept a QWidget.
> 
> What am I doing wrong?
> 
> Glenn
> 
> # SIP definition
> class HostWidget : QLabel {
> 
> %TypeHeaderCode
> #include "hostwidget.h"
> %End
> 
> public:
>      HostWidget(QWidget *parent /TransferThis/ =0, Qt::WindowFlags f=0);
> 
> signals:
>      void resize(QResizeEvent* evt);
>      void change(QEvent* evt);
> };
> 
> # Test program
> import sys
> from PyQt4.QtGui import QApplication, QWidget
> 
> from MyModule import HostWidget
> 
> try:
>      a = QApplication(sys.argv)
>      w = QWidget()
>      h = HostWidget(w)
> except Exception as e:
>      print(str(e))
> 
> # Output
> HostWidget(): argument 1 has unexpected type 'QWidget'

Nothing obviously wrong, so you need to provide a complete example and
version numbers.

Phil


More information about the PyQt mailing list