QImage* new_QImage( const uchar * data, int width, int height, QImage::Format format ) { QImage* image = new QImage(width, height, format); memcpy(image->bits(), data, image->byteCount()); return image; } PyObject* bits(QImage* image) { return PythonQtPrivate::wrapMemoryAsBuffer(image->bits(), image->bytesPerLine()* image->height()); } #if QT_VERSION >= QT_VERSION_CHECK(4,7,0) PyObject* constBits(QImage* image) { return PythonQtPrivate::wrapMemoryAsBuffer(image->constBits(), image->byteCount()); } #endif PyObject* scanLine(QImage* image, int line) { return PythonQtPrivate::wrapMemoryAsBuffer(image->scanLine(line), image->bytesPerLine()); } #if QT_VERSION >= QT_VERSION_CHECK(4,7,0) PyObject* constScanLine(QImage* image, int line) { return PythonQtPrivate::wrapMemoryAsBuffer(image->constScanLine(line), image->bytesPerLine()); } #endif QAction* addAction (QMenu* menu, const QString & text, PyObject* callable, const QKeySequence & shortcut = 0) { QAction* a = menu->addAction(text); a->setShortcut(shortcut); PythonQt::self()->addSignalHandler(a, SIGNAL(triggered(bool)), callable); return a; } QAction* addAction (QMenu* menu, const QIcon& icon, const QString& text, PyObject* callable, const QKeySequence& shortcut = 0) { QAction* a = menu->addAction(text); a->setIcon(icon); a->setShortcut(shortcut); PythonQt::self()->addSignalHandler(a, SIGNAL(triggered(bool)), callable); return a; } QAction* addAction (QMenuBar* menu, const QString & text, PyObject* callable) { QAction* a = menu->addAction(text); PythonQt::self()->addSignalHandler(a, SIGNAL(triggered(bool)), callable); return a; } QAction* addAction (QToolBar* menu, const QString & text, PyObject* callable) { QAction* a = menu->addAction(text); PythonQt::self()->addSignalHandler(a, SIGNAL(triggered(bool)), callable); return a; } QAction* addAction (QToolBar* menu, const QIcon& icon, const QString& text, PyObject* callable) { QAction* a = menu->addAction(text); a->setIcon(icon); PythonQt::self()->addSignalHandler(a, SIGNAL(triggered(bool)), callable); return a; }