embeddedpyqt / embeddedpyqt.py

# -*- coding: utf-8 -*-
import sys
import os

import sip
from PyQt4.QtGui import qApp
from PyQt4.QtCore import QMetaObject


path = os.path.dirname(os.path.abspath(__file__))
if path not in sys.path:
	sys.path.insert(0, path)


from pyqtproxy import class_from_metaobject, wrap_instance

namespace = {}

embpyqt = wrap_instance(qApp.property("embedded_pyqt").toPyObject())
namespace.update(embpyqt=embpyqt)

from console import Console
embpyqt_console = Console(namespace)


def get_class(name):
	ptr = embpyqt.metaObjectByName(name)
	mo = sip.wrapinstance(int(ptr), QMetaObject)
	return class_from_metaobject(mo)


print "embpyqt:", embpyqt, dir(embpyqt)

Test = get_class("Test")
namespace.update(Test=Test)

print "Test:", Test, dir(Test)
t = Test()
t.test()
print t.calc(1,2)

from pyqtstubs import StubCreator
stubs = StubCreator()
stubs.add_class(embpyqt.__class__)
stubs.add_class(t)
print stubs

embpyqt.setException("foo", "baz")


print "done"
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.