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

Glenn Ramsey gr at componic.co.nz
Tue Oct 4 22:23:18 BST 2011


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'



More information about the PyQt mailing list