[prev in list] [next in list] [prev in thread] [next in thread]
List: pykde
Subject: [PyKDE] QWidgetFactory support
From: Hans-Peter Jansen <hpj () urpla ! net>
Date: 2003-01-30 18:00:28
[Download RAW message or body]
Hi Phil,
attached is an implementation of QWidgetFactory based on the PyQt
snapshot from 25.01. Since it's my first PyQt module, it would be
nice, if you take a look over it, especially into the sip files.
Any Transfer* magic missing? The win parts of quimod.sip are
definitely wrong, but I don't know better, yet.
At least, QWidgetFactory.create("some.ui") seems to work fine on
linux.
I've kept your copyright, but added myself to it. I hope, this is
fine with you.
Pete
["build-quimod.diff" (text/x-diff)]
--- build.py.orig 2003-01-26 02:03:04.000000000 +0100
+++ build.py 2003-01-30 17:58:49.000000000 +0100
@@ -345,19 +345,20 @@
TARGET = qttest
CONFIG = qt @TEST_OPENGL@ console warn_off release @BL_THREAD@
INCLUDEPATH = . @BL_INCLUDEPATH@
DEFINES = @BL_DEFINES@
SOURCES = qttest.cpp
-LIBS += @TEST_SCILIBDIR@
+LIBS += @TEST_SCILIBDIR@ @TEST_QUILIBDIR@
win32:LIBS += @BL_PYLIB@
""")
- # Disable OpenGL and QScintilla support by default.
+ # Disable OpenGL, QScintilla and Qui support by default.
global proPatches
proPatches["TOPENGL"] = [re.compile("@TEST_OPENGL@",re.M), ""]
proPatches["TSCILIBDIR"] = [re.compile("@TEST_SCILIBDIR@",re.M), ""]
+ proPatches["TQUILIBDIR"] = [re.compile("@TEST_QUILIBDIR@",re.M), ""]
# Create a dummy source file to suppress a qmake warning.
copyToFile("qttest.cpp","")
buildMakefile("qttest.pro")
@@ -978,10 +979,22 @@
# Put things back.
proPatches["TSCILIBDIR"] = [re.compile("@TEST_SCILIBDIR@",re.M), ""]
buildMakefile("qttest.pro")
+ if qtVersion >= 0x030000:
+ quilib = ""
+ if sys.platform == "win32":
+ quilib = "qui.lib"
+ else:
+ quilib = "-lqui"
+ proPatches["TQUILIBDIR"] = [re.compile("@TEST_QUILIBDIR@",re.M), quilib]
+ buildMakefile("qttest.pro")
+ tryModule("qui", "qwidgetfactory.h", "QWidgetFactory()")
+ # Put things back.
+ proPatches["TQUILIBDIR"] = [re.compile("@TEST_QUILIBDIR@",re.M), ""]
+ buildMakefile("qttest.pro")
def generateFeatures(featfile):
"""Generate the header file describing the Qt features that are enabled if
it doesn't already exist. (If it already exists then we are probably cross
["quimod.sip" (text/x-c++src)]
// This is the SIP interface definition for the qui module of PyQt.
//
// Copyright (c) 2003
// Hans-Peter Jansen <hpj@urpla.net>
// Riverbank Computing Limited <info@riverbankcomputing.co.uk>
//
// This file is part of PyQt.
//
// This copy of PyQt is free software; you can redistribute it and/or modify it
// under the terms of the GNU General Public License as published by the Free
// Software Foundation; either version 2, or (at your option) any later
// version.
//
// PyQt is supplied in the hope that it will be useful, but WITHOUT ANY
// WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
// FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
// details.
//
// You should have received a copy of the GNU General Public License along with
// PyQt; see the file LICENSE. If not, write to the Free Software Foundation,
// Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
%Module qui 0
%Import qtmod.sip
%Include copying.sip
%Include qwidgetfactory.sip
// The project file template.
%Makefile qui.pro
# The project file for the qui module.
#
# Copyright (c) 2003
# Riverbank Computing Limited <info@riverbankcomputing.co.uk>
#
# This file is part of PyQt.
#
# This copy of PyQt is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the Free
# Software Foundation; either version 2, or (at your option) any later
# version.
#
# PyQt is supplied in the hope that it will be useful, but WITHOUT ANY
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
# details.
#
# You should have received a copy of the GNU General Public License along with
# PyQt; see the file LICENSE. If not, write to the Free Software Foundation,
# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
TEMPLATE = lib
TARGET = @BL_TARGET@
DESTDIR = @BL_DESTDIR@
CONFIG += qt warn_off @BL_DEBUG@ @BL_SIP@ @BL_DLL@ @BL_THREAD@
INCLUDEPATH = . ../qt @BL_INCLUDEPATH@
DEFINES = SIP_MAKE_MODULE_DLL @BL_DEFINES@
sip3:unix:LIBS += -L@BL_DESTDIR@ -lqtcmodule -L@BL_SIPMODDIR@ -lsip -lqui
sip3:win32:LIBS += @BL_DESTDIR@\libqtc.lib @BL_SIPMODDIR@\libsip.lib @BL_PYLIB@ @BL_QUILIBDIR@\qui.lib
sip4:unix:LIBS += -lqui
sip4:win32:LIBS += @BL_PYLIB@ @BL_QUILIBDIR@\qui.lib
SOURCES = \
$B
HEADERS = \
$H
%End
["qwidgetfactory.sip" (text/x-c++src)]
// This is the SIP interface definition for QWidgetFactory.
//
// Copyright (c) 2003
// Hans-Peter Jansen <hpj@urpla.net>
// Riverbank Computing Limited <info@riverbankcomputing.co.uk>
//
// This file is part of PyQt.
//
// This copy of PyQt is free software; you can redistribute it and/or modify it
// under the terms of the GNU General Public License as published by the Free
// Software Foundation; either version 2, or (at your option) any later
// version.
//
// PyQt is supplied in the hope that it will be useful, but WITHOUT ANY
// WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
// FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
// details.
//
// You should have received a copy of the GNU General Public License along with
// PyQt; see the file LICENSE. If not, write to the Free Software Foundation,
// Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
%ExportedDoc
<Sect2><Title>QWidgetFactory (Qt v3+)</Title>
<Para>
<Literal>QWidgetFactory</Literal> is fully implemented.
</Para>
</Sect2>
%End
%If (Qt_3_0_0 -)
class QWidgetFactory
{
%HeaderCode
#include <qwidgetfactory.h>
%End
public:
QWidgetFactory();
static QWidget *create(const QString &, QObject * = 0, QWidget * = 0, const char * = 0);
static QWidget *create(QIODevice *, QObject * = 0, QWidget * = 0, const char * = 0);
static void addWidgetFactory(QWidgetFactory * /Transfer/);
static void loadImages(const QString &);
virtual QWidget *createWidget(const QString &, QWidget *, const char *) const;
};
%End
_______________________________________________
PyKDE mailing list PyKDE@mats.gmd.de
http://mats.gmd.de/mailman/listinfo/pykde
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic