I think, I can answer my own question. But only with respect to the
_reason_ for this behaviour. I have to admit, that I don't like this
behaviour:
The problem is the "namespace ui". Because OnyxDialog is defined in that
namespace, it has to be referred to as ui::OnyxDialog in
"message_dialog.sip", even though it's being referred to in the very
same namespace.
What I don't like about that revelation: It seems like there is no way
to teach SIP to cut off the "ui" from the namespace. In Python, I will
always have to refer to the classes via PyOnyx.ui.ui.MessageDialog. Of
course, that alone is not the problem. But the problem is, that I can do
things like "from PyOnyx.ui import ui", but not something like "from
PyOnyx.ui.ui import *". And later, when I have a namespace called "sys",
this is even going to conflict with the Python module of the same name.
I would love to have a module called "PyOnyx.ui" and the classes
"MessageDialog" and "OnyxDialog" as direct parts of that module. Is
there any possibility to achieve this with SIP 4.12.2?
Am 01.05.2012 00:32, schrieb tuxor1...@web.de:
Hi all,
maybe somebody can help me with this. I'm using SIP 4.12.2.
My configure.py script is executing the following sip command line:
/opt/python/bin/sip -c . -b ui/ui.sbf -I /opt/python/share/sip/PyQt4 -x
PyQt_Accessibility -x PyQt_Cursor -x PyQt_ImageFormat_JPEG -x
PyQt_Picture -x PyQt_PrintDialog -x PyQt_Printer -x PyQt_ProgressDialog
-x PyQt_QWS_Cursor -x PyQt_SessionManager -x PyQt_Sound -x VendorID -t
WS_QWS -x PyQt_Accessibility -x PyQt_SessionManager -x PyQt_PrintDialog
-x PyQt_Printer -x PyQt_PrintPreviewDialog -x PyQt_PrintPreviewWidget -x
PyQt_NoPrintRangeBug -x PyQt_qreal_double -t Qt_4_7_2 -x Py_v3 -g
ui/uimod.sip
... which looks okay to me.
But it fails with this error message:
sip: OnyxDialog has not been defined
The sip-file "ui/uimod.sip" looks like this:
############################
%Module PyOnyx.ui
%Include onyx_dialog.sip
%Include message_dialog.sip
############################
The error is obviously related to the file "message_dialog.sip", because
when I leave out that file, everything is fine.
################## message_dialog.sip ########################
%Import QtGui/QtGuimod.sip
namespace ui
{
class MessageDialog : OnyxDialog
{
%TypeHeaderCode
#include "onyx/ui/message_dialog.h"
%End
public:
MessageDialog(QMessageBox::Icon icon,
const QString & title,
const QString & text,
QMessageBox::StandardButtons buttons = QMessageBox::NoButton,
QWidget * parent = 0);
~MessageDialog();
public:
int exec();
void updateInformation(const QString & text);
};
};
################## End: message_dialog.sip ################
################## onyx_dialog.sip ########################
%Import QtGui/QtGuimod.sip
namespace ui
{
class OnyxDialog : QDialog
{
%TypeHeaderCode
#include "onyx/ui/onyx_dialog.h"
%End
public:
OnyxDialog(QWidget *parent, bool show_shadow = true);
~OnyxDialog();
};
};
################## End: onyx_dialog.sip ####################
_______________________________________________
PyQt mailing list PyQt@riverbankcomputing.com
http://www.riverbankcomputing.com/mailman/listinfo/pyqt
_______________________________________________
PyQt mailing list PyQt@riverbankcomputing.com
http://www.riverbankcomputing.com/mailman/listinfo/pyqt