00001 #!/usr/bin/env python 00002 00003 # Copyright (c) 2011, Dirk Thomas, Dorian Scholz, TU Darmstadt 00004 # All rights reserved. 00005 # 00006 # Redistribution and use in source and binary forms, with or without 00007 # modification, are permitted provided that the following conditions 00008 # are met: 00009 # 00010 # * Redistributions of source code must retain the above copyright 00011 # notice, this list of conditions and the following disclaimer. 00012 # * Redistributions in binary form must reproduce the above 00013 # copyright notice, this list of conditions and the following 00014 # disclaimer in the documentation and/or other materials provided 00015 # with the distribution. 00016 # * Neither the name of the TU Darmstadt nor the names of its 00017 # contributors may be used to endorse or promote products derived 00018 # from this software without specific prior written permission. 00019 # 00020 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 00021 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 00022 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 00023 # FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 00024 # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 00025 # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 00026 # BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 00027 # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 00028 # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 00029 # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 00030 # ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 00031 # POSSIBILITY OF SUCH DAMAGE. 00032 00033 """ 00034 Abstraction for different Python Qt bindings. 00035 00036 Supported Python Qt bindings are PyQt4 and PySide. 00037 The Qt modules can be imported like this: 00038 00039 from python_qt_binding.QtCore import QObject 00040 from python_qt_binding import QtGui, loadUi 00041 00042 The name of the selected binding is available in QT_BINDING. 00043 The version of the selected binding is available in QT_BINDING_VERSION. 00044 All available Qt modules are listed in QT_BINDING_MODULES. 00045 00046 The default binding order ('pyqt', 'pyside') can be overridden with a 00047 SELECT_QT_BINDING_ORDER attribute on sys: 00048 setattr(sys, 'SELECT_QT_BINDING_ORDER', [FIRST_NAME, NEXT_NAME, ..]) 00049 00050 A specific binding can be selected with a SELECT_QT_BINDING attribute on sys: 00051 setattr(sys, 'SELECT_QT_BINDING', MY_BINDING_NAME) 00052 """ 00053 00054 import sys 00055 from .binding_helper import loadUi, QT_BINDING, QT_BINDING_MODULES, QT_BINDING_VERSION # @UnusedImport 00056 00057 # register all binding modules as sub modules of this package (python_qt_binding) for easy importing 00058 for module_name, module in QT_BINDING_MODULES.items(): 00059 sys.modules[__name__ + '.' + module_name] = module 00060 setattr(sys.modules[__name__], module_name, module) 00061 del module_name 00062 del module 00063 00064 del sys