A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://mevislab.github.io/pythonqt/classPythonQt.html below:

PythonQt: PythonQt Class Reference

The main interface to the Python Qt binding, realized as a singleton. More...

#include <PythonQt.h>

enum   InitFlags { RedirectStdOut = 1 , IgnoreSiteModule = 2 , ExternalHelp = 4 , PythonAlreadyInitialized = 8 }   flags that can be passed to PythonQt::init() More...
  enum   TypeSlots {
  Type_Add = 1 , Type_Subtract = 1 << 1 , Type_Multiply = 1 << 2 , Type_Divide = 1 << 3 ,
  Type_Mod = 1 << 4 , Type_And = 1 << 5 , Type_Or = 1 << 6 , Type_Xor = 1 << 7 ,
  Type_LShift = 1 << 8 , Type_RShift = 1 << 9 , Type_InplaceAdd = 1 << 10 , Type_InplaceSubtract = 1 << 11 ,
  Type_InplaceMultiply = 1 << 12 , Type_InplaceDivide = 1 << 13 , Type_InplaceMod = 1 << 14 , Type_InplaceAnd = 1 << 15 ,
  Type_InplaceOr = 1 << 16 , Type_InplaceXor = 1 << 17 , Type_InplaceLShift = 1 << 18 , Type_InplaceRShift = 1 << 19 ,
  Type_Length = 1 << 20 , Type_MappingSetItem = 1 << 21 , Type_MappingGetItem = 1 << 22 , Type_EnterExit = 1 << 23 ,
  Type_Invert = 1 << 29 , Type_RichCompare = 1 << 30 , Type_NonZero = 1 << 31
}   flags that tell PythonQt which operators to expect on the registered type More...
  enum   ProfilingCallbackState { Enter = 1 , Leave = 2 }   enum for profiling callback More...
  typedef void  ProfilingCB(ProfilingCallbackState state, const char *className, const char *methodName, PyObject *args)   void  setRedirectStdInCallback (PythonQtInputChangedCB *callback, void *callbackData=nullptr)   void  setRedirectStdInCallbackEnabled (bool enabled)   PythonQtObjectPtr  getMainModule ()   get the main module of python
  PythonQtObjectPtr  importModule (const QString &name)   PythonQtObjectPtr  createModuleFromFile (const QString &name, const QString &filename)   PythonQtObjectPtr  createModuleFromScript (const QString &name, const QString &script=QString())   PythonQtObjectPtr  createUniqueModule ()   void  overwriteSysPath (const QStringList &paths)   overwrite the python sys path (call this directly after PythonQt::init() if you want to change the std python sys path)
  void  addSysPath (const QString &path)   prepend a path to sys.path to allow importing from it
  void  setModuleImportPath (PyObject *module, const QStringList &paths)   sets the path list of a module to the given list (important for local imports)
  void  registerClass (const QMetaObject *metaobject, const char *package=nullptr, PythonQtQObjectCreatorFunctionCB *wrapperCreator=nullptr, PythonQtShellSetInstanceWrapperCB *shell=nullptr)   registers a QObject derived class to PythonQt (this is implicitly called by addObject as well)
  void  registerCPPClass (const char *typeName, const char *parentTypeName=nullptr, const char *package=nullptr, PythonQtQObjectCreatorFunctionCB *wrapperCreator=nullptr, PythonQtShellSetInstanceWrapperCB *shell=nullptr)   void  registerQObjectClassNames (const QStringList &names)   bool  addParentClass (const char *typeName, const char *parentTypeName, int upcastingOffset=0)   void  addPolymorphicHandler (const char *typeName, PythonQtPolymorphicHandlerCB *cb)   add a handler for polymorphic downcasting
  PythonQtObjectPtr  parseFile (const QString &filename)   parses the given file (using PythonQt's own import mechanism) and returns the python code object, this can then be used to call evalCode()
  PythonQtObjectPtr  parseFileWithPythonLoaders (const QString &filename)   QVariant  evalCode (PyObject *object, PyObject *pycode)   QVariant  evalScript (PyObject *object, const QString &script, int start=Py_file_input)   evaluates the given script code and returns the result value
  QVariant  evalScript (const QString &script, PyObject *globals, PyObject *locals, int start)   evaluates the given script code in context of given globals and locals and returns the result value
  void  evalFile (PyObject *object, const QString &filename)   evaluates the given script code from file
  bool  addSignalHandler (QObject *obj, const char *signal, PyObject *module, const QString &objectname)   add a signal handler to the given signal of obj and connect it to a callable objectname in module
  bool  removeSignalHandler (QObject *obj, const char *signal, PyObject *module, const QString &objectname)   remove a signal handler from the given signal of obj
  bool  addSignalHandler (QObject *obj, const char *signal, PyObject *receiver)   add a signal handler to the given signal of obj and connect it to a callable receiver
  bool  removeSignalHandler (QObject *obj, const char *signal, PyObject *receiver)   remove a signal handler from the given signal of obj
  void  removeSignalHandlers ()   globally removes all signal handlers (connections between QObjects and Python).
  void  addObject (PyObject *object, const QString &name, QObject *qObject)   add the given qObject to the python object as a variable with name (it can be removed via clearVariable)
  void  addVariable (PyObject *object, const QString &name, const QVariant &v)   add the given variable to the object
  void  removeVariable (PyObject *module, const QString &name)   remove the given variable
  QVariant  getVariable (PyObject *object, const QString &name)   get the variable with the name of the object, returns an invalid QVariant on error
  QVariant  getNativeVariable (PyObject *object, const QString &name)   get the variable with the name of the object as QVariant of type PythonQtObjectPtr, returns an invalid QVariant on error
  QStringList  introspection (PyObject *object, const QString &objectname, ObjectType type)   read vars etc. in scope of an object, optional looking inside of an object objectname
  QStringList  introspectObject (PyObject *object, ObjectType type)   read vars etc. in scope of the given object
  QStringList  introspectType (const QString &typeName, ObjectType type)   PythonQtObjectPtr  lookupCallable (PyObject *object, const QString &name)   QString  getReturnTypeOfWrappedMethod (PyObject *module, const QString &objectname)   returns the return type of the method of a wrapped c++ object referenced by objectname
  QString  getReturnTypeOfWrappedMethod (const QString &typeName, const QString &methodName)   returns the return type of the method methodName of a wrapped c++ type referenced by typeName
  QVariant  call (PyObject *object, const QString &callable, const QVariantList &args=QVariantList(), const QVariantMap &kwargs=QVariantMap())   call the given python callable in the scope of object, returns the result converted to a QVariant
  QVariant  call (PyObject *callable, const QVariantList &args=QVariantList(), const QVariantMap &kwargs=QVariantMap())   call the given python object, returns the result converted to a QVariant
  PyObjectcallAndReturnPyObject (PyObject *callable, const QVariantList &args=QVariantList(), const QVariantMap &kwargs=QVariantMap())   call the given python object, returns the result as new PyObject
  void  addInstanceDecorators (QObject *o)   void  addClassDecorators (QObject *o)   void  addDecorators (QObject *o)   this will add the object both as class and instance decorator (ownership is passed to PythonQt)
  void  addWrapperFactory (PythonQtCppWrapperFactory *factory)   add the given factory to PythonQt (ownership stays with caller)
  void  addWrapperFactory (PythonQtForeignWrapperFactory *factory)   add the given factory to PythonQt (ownership stays with caller)
  void  removeWrapperFactory (PythonQtCppWrapperFactory *factory)   remove the wrapper factory
  void  removeWrapperFactory (PythonQtForeignWrapperFactory *factory)   remove the wrapper factory
 

The main interface to the Python Qt binding, realized as a singleton.

Use PythonQt::init() to initialize the singleton and PythonQt::self() to access it. While there can be only one PythonQt instance, you can have any number of Python context to do scripting in. One possibility is to use createModuleFromFile(), createModuleFromScript() or createUniqueModule() to get a context that is separated from the other contexts. Alternatively you can use Python dicts as contexts for script evaluation, but you will need to populate the dict with the builtins instance to have all Pythons available when running code in the scope of a dict.

Definition at line 169 of file PythonQt.h.

◆ ProfilingCB

callback for profiling. className and methodName are only passed when state == Enter, otherwise they are NULL.

Definition at line 227 of file PythonQt.h.

◆ InitFlags

flags that can be passed to PythonQt::init()

Enumerator RedirectStdOut 

< sets if the std out/err is redirected to pythonStdOut() and pythonStdErr() signals

IgnoreSiteModule 

< sets if Python should ignore the site module

ExternalHelp 

< sets if help() calls on PythonQt modules are forwarded to the pythonHelpRequest() signal

PythonAlreadyInitialized 

< sets that PythonQt should not can PyInitialize, since it is already done

Definition at line 176 of file PythonQt.h.

176 {

181 };

@ RedirectStdOut

< sets if the std out/err is redirected to pythonStdOut() and pythonStdErr() signals

@ IgnoreSiteModule

< sets if Python should ignore the site module

@ PythonAlreadyInitialized

< sets that PythonQt should not can PyInitialize, since it is already done

@ ExternalHelp

< sets if help() calls on PythonQt modules are forwarded to the pythonHelpRequest() signal

◆ ObjectType

defines the object types for introspection

Enumerator Class  Function  Variable  Module  Anything  CallOverloads 

Definition at line 247 of file PythonQt.h.

◆ ProfilingCallbackState

enum for profiling callback

Definition at line 220 of file PythonQt.h.

◆ TypeSlots

flags that tell PythonQt which operators to expect on the registered type

Enumerator Type_Add  Type_Subtract  Type_Multiply  Type_Divide  Type_Mod  Type_And  Type_Or  Type_Xor  Type_LShift  Type_RShift  Type_InplaceAdd  Type_InplaceSubtract  Type_InplaceMultiply  Type_InplaceDivide  Type_InplaceMod  Type_InplaceAnd  Type_InplaceOr  Type_InplaceXor  Type_InplaceLShift  Type_InplaceRShift  Type_Length  Type_MappingSetItem  Type_MappingGetItem  Type_EnterExit  Type_Invert  Type_RichCompare  Type_NonZero 

Definition at line 184 of file PythonQt.h.

184 {

195

206

210

212

216

217 };

◆ addClassDecorators() void PythonQt::addClassDecorators ( QObject *  o )

add an object whose slots will be used as decorator slots for class objects (ownership is passed to PythonQt)

The slots need to follow the following convention:

This will add:

◆ addDecorators() void PythonQt::addDecorators ( QObject *  o )

this will add the object both as class and instance decorator (ownership is passed to PythonQt)

◆ addInstanceDecorators() void PythonQt::addInstanceDecorators ( QObject *  o )

add an object whose slots will be used as decorator slots for other QObjects or CPP classes. The slots need to follow the convention that the first argument is a pointer to the wrapped object. (ownership is passed to PythonQt)

Example:

A slot with the signature

PyObject * PythonQtConvertPairToPython(const void *inPair, int metaTypeId)

will extend QWidget instances (and derived classes) with a "bool doSomething(int a)" slot that will be called with the concrete instance as first argument. So in Python you can now e.g. call

without QWidget really having this method. This allows to easily make normal methods of Qt classes callable by forwarding them with such decorator slots or to make CPP classes (which are not derived from QObject) callable from Python.

◆ addObject()

add the given qObject to the python object as a variable with name (it can be removed via clearVariable)

◆ addParentClass()

add a parent class relation to the given typeName, the upcastingOffset is needed for multiple inheritance and can be calculated using PythonQtUpcastingOffset<type,parentType>(), which also verifies that type is really derived from parentType. Returns false if the typeName was not yet registered.

◆ addPolymorphicHandler()

add a handler for polymorphic downcasting

◆ addSignalHandler() [1/2]

add a signal handler to the given signal of obj and connect it to a callable objectname in module

◆ addSignalHandler() [2/2]

add a signal handler to the given signal of obj and connect it to a callable receiver

◆ addSysPath()

prepend a path to sys.path to allow importing from it

◆ addVariable()

add the given variable to the object

◆ addWrapperFactory() [1/2]

add the given factory to PythonQt (ownership stays with caller)

◆ addWrapperFactory() [2/2]

add the given factory to PythonQt (ownership stays with caller)

◆ call() [1/2]

call the given python object, returns the result converted to a QVariant

◆ call() [2/2]

call the given python callable in the scope of object, returns the result converted to a QVariant

◆ callAndReturnPyObject()

call the given python object, returns the result as new PyObject

◆ cleanup() ◆ clearError() void PythonQt::clearError ( ) ◆ clearNotFoundCachedMembers() void PythonQt::clearNotFoundCachedMembers ( )

clear all NotFound entries on all class infos, to ensure that newly loaded wrappers can add methods even when the object was wrapped by PythonQt before the wrapper was loaded

◆ createModuleFromFile()

creates the new module name and evaluates the given file in the context of that module If the script is empty, the module contains no initial code. You can use evalScript/evalCode to add code to a module later on. The user needs to make sure that the name is unique in the python module dictionary.

◆ createModuleFromScript()

creates the new module name and evaluates the given script in the context of that module. If the script is empty, the module contains no initial code. You can use evalScript/evalCode to add code to a module later on. The user needs to make sure that the name is unique in the python module dictionary.

◆ createUniqueModule()

create a uniquely named module, you can use evalFile or evalScript to populate the module with script code

◆ evalCode()

evaluates the given code and returns the result value (use Py_Compile etc. to create pycode from string) If pycode is NULL, a python error is printed.

◆ evalFile()

evaluates the given script code from file

◆ evalScript() [1/2]

evaluates the given script code in context of given globals and locals and returns the result value

◆ evalScript() [2/2]

evaluates the given script code and returns the result value

◆ getImporterIgnorePaths()

get paths that the importer should ignore

◆ getMainModule()

get the main module of python

◆ getNativeVariable()

get the variable with the name of the object as QVariant of type PythonQtObjectPtr, returns an invalid QVariant on error

◆ getReturnTypeOfWrappedMethod() [1/2]

returns the return type of the method methodName of a wrapped c++ type referenced by typeName

◆ getReturnTypeOfWrappedMethod() [2/2]

returns the return type of the method of a wrapped c++ object referenced by objectname

◆ getVariable()

get the variable with the name of the object, returns an invalid QVariant on error

◆ hadError() bool PythonQt::hadError ( ) const

return true if handleError() has been called and an error occurred.

◆ handleError()

handle a python error, call this when a python function fails. If no error occurred, it returns false. The error is currently just output to the python stderr, future version might implement better trace printing

◆ helpCalled()

called by internal help methods

◆ importInterface()

get access to the file importer (if set)

◆ importModule()

import the given module and return a reference to it (useful to import e.g. "sys" and call something on it) If a module is already imported, this returns the already imported module.

◆ init()

initialize the python qt binding (flags are a or combination of PythonQt::InitFlags), if pythonQtModuleName is given it defines the name of the python module that PythonQt will add, otherwise "PythonQt" is used. This can be used to e.g. pass in PySide or PyQt4 to make it more compatible.

◆ installDefaultImporter() void PythonQt::installDefaultImporter ( ) inline

this installs the default QFile importer (which effectively does a setImporter(NULL)) (without calling setImporter or installDefaultImporter at least once, the default python import mechanism is in place) the default importer allows to import files from anywhere QFile can read from, including the Qt resource system using ":". Keep in mind that you need to extend "sys.path" with ":" to be able to import from the Qt resources.

Definition at line 539 of file PythonQt.h.

void setImporter(PythonQtImportFileInterface *importInterface)

◆ introspection()

read vars etc. in scope of an object, optional looking inside of an object objectname

◆ introspectObject()

read vars etc. in scope of the given object

◆ introspectType()

read vars etc. in scope of the type object called typename. First the typename of the form module.type is split into module and type. Then the module is looked up in sys.modules. If the module or type is not found there, then the type is looked up in the builtin module.

◆ lookupCallable()

returns the found callable object or NULL

Returns
new reference
◆ lookupObject()

returns the found object or NULL

Returns
new reference
◆ overwriteSysPath()

overwrite the python sys path (call this directly after PythonQt::init() if you want to change the std python sys path)

◆ parseFile()

parses the given file (using PythonQt's own import mechanism) and returns the python code object, this can then be used to call evalCode()

◆ parseFileWithPythonLoaders()

Parses the given file and returns the python code object, this can then be used to call evalCode() It uses Python's importlib machinery to load the file's code and supports source and sourceless loading and generation of cache files. This method is PY3K only!

◆ priv() ◆ pythonHelpRequest

emitted when help() is called on a PythonQt object and ExternalHelp is enabled

◆ pythonStdErr

emitted when python outputs something to stderr (and redirection is turned on)

◆ pythonStdOut

emitted when python outputs something to stdout (and redirection is turned on)

◆ qObjectMissingAttributeCallback()

call the callback if it is set

◆ qObjectNoLongerWrappedCB() static void PythonQt::qObjectNoLongerWrappedCB ( QObject *  o ) static

call the callback if it is set

◆ registerClass()

registers a QObject derived class to PythonQt (this is implicitly called by addObject as well)

◆ registerCPPClass()

add a wrapper object for the given QMetaType typeName, also does an addClassDecorators() to add constructors for variants (ownership of wrapper is passed to PythonQt)

Make sure that you have done a qRegisterMetaType first, if typeName is a user type!

This will add a wrapper object that is used to make calls to the given classname typeName. All slots that take a pointer to typeName as the first argument will be callable from Python on a variant object that contains such a type.

◆ registerQObjectClassNames()

as an alternative to registerClass, you can tell PythonQt the names of QObject derived classes and it will register the classes when it first sees a pointer to such a derived class

◆ removeSignalHandler() [1/2]

remove a signal handler from the given signal of obj

◆ removeSignalHandler() [2/2]

remove a signal handler from the given signal of obj

◆ removeSignalHandlers() void PythonQt::removeSignalHandlers ( )

globally removes all signal handlers (connections between QObjects and Python).

◆ removeVariable()

remove the given variable

◆ removeWrapperFactory() [1/2]

remove the wrapper factory

◆ removeWrapperFactory() [2/2]

remove the wrapper factory

◆ self()

get the singleton instance

◆ setEnableThreadSupport()

Enable GIL and thread state handling (turned off by default). If you want to use Python threading, you have to call this with true early in your main thread, before you launch any threads in Python. It can be called before or after PythonQt::init().

◆ setImporter()

replace the internal import implementation and use the supplied interface to load files (both py and pyc files) (this method should be called directly after initialization of init() and before calling overwriteSysPath(). On the first call to this method, it will install a generic PythonQt importer in Pythons "path_hooks". This is not reversible, so even setting setImporter(NULL) afterwards will keep the custom PythonQt importer with a QFile default import interface. Subsequent python import calls will make use of the passed importInterface which forwards all import calls to the given importInterface. Passing NULL will install a default QFile importer. (importInterface ownership stays with caller)

◆ setImporterIgnorePaths()

set paths that the importer should ignore

◆ setModuleImportPath()

sets the path list of a module to the given list (important for local imports)

◆ setProfilingCallback()

sets a callback that is called before and after function calls for profiling

◆ setQObjectMissingAttributeCallback()

set a callback that is called when a QObject does not have a specific attribute.

◆ setQObjectNoLongerWrappedCallback()

set a callback that is called when a QObject with parent == NULL is no longer wrapped by PythonQt

◆ setQObjectWrappedCallback()

set a callback that is called when a QObject with parent == NULL is wrapped by PythonQt

◆ setRedirectStdInCallback()

Overwrite default handling of stdin using a custom callback. It internally backup the original 'sys.stdin' into 'sys.pythonqt_original_stdin'

◆ setRedirectStdInCallbackEnabled() void PythonQt::setRedirectStdInCallbackEnabled ( bool  enabled )

Enable or disable stdin custom callback. It resets 'sys.stdin' using either 'sys.pythonqt_stdin' or 'sys.pythonqt_original_stdin'

◆ setSystemExitExceptionHandlerEnabled() void PythonQt::setSystemExitExceptionHandlerEnabled ( bool  value )

if set to true, the systemExitExceptionRaised signal will be emitted if exception SystemExit is caught

See also
handleError()
◆ systemExitExceptionHandlerEnabled() bool PythonQt::systemExitExceptionHandlerEnabled ( ) const ◆ systemExitExceptionRaised void PythonQt::systemExitExceptionRaised ( int  exitCode ) signal

The documentation for this class was generated from the following file:


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4