67 lines
1.9 KiB
Python
67 lines
1.9 KiB
Python
# TODO: CAMPid 0970432108721340872130742130870874321
|
|
import importlib
|
|
import pkg_resources
|
|
|
|
major = int(pkg_resources.get_distribution(__name__.partition('.')[0]).version.partition(".")[0])
|
|
|
|
|
|
def import_it(*segments):
|
|
m = {
|
|
"pyqt_tools": "pyqt{major}_tools".format(major=major),
|
|
"pyqt_plugins": "pyqt{major}_plugins".format(major=major),
|
|
"qt_tools": "qt{major}_tools".format(major=major),
|
|
"qt_applications": "qt{major}_applications".format(major=major),
|
|
"PyQt": "PyQt{major}".format(major=major),
|
|
}
|
|
|
|
majored = [m[segments[0]], *segments[1:]]
|
|
return importlib.import_module(".".join(majored))
|
|
|
|
|
|
QtGui = import_it("PyQt", "QtGui")
|
|
QtDesigner = import_it("PyQt", "QtDesigner")
|
|
pyqt_plugins = import_it("pyqt_plugins")
|
|
import_it("pyqt_plugins", "examplebutton")
|
|
|
|
|
|
class ExampleButtonPlugin(QtDesigner.QPyDesignerCustomWidgetPlugin):
|
|
# https://wiki.python.org/moin/PyQt/Using_Python_Custom_Widgets_in_Qt_Designer
|
|
|
|
def __init__(self, parent=None):
|
|
super().__init__(parent=parent)
|
|
|
|
self.initialized = False
|
|
|
|
def initialize(self, core):
|
|
if self.initialized:
|
|
return
|
|
|
|
self.initialized = True
|
|
|
|
def isInitialized(self):
|
|
return self.initialized
|
|
|
|
def createWidget(self, parent):
|
|
return pyqt_plugins.examplebutton.ExampleButton(parent)
|
|
|
|
def name(self):
|
|
return pyqt_plugins.examplebutton.ExampleButton.__name__
|
|
|
|
def group(self):
|
|
return 'pyqt{}-tools'.format(major)
|
|
|
|
def icon(self):
|
|
return QtGui.QIcon()
|
|
|
|
def toolTip(self):
|
|
return 'pyqt{}-tools Example Button Tool Tip'.format(major)
|
|
|
|
def whatsThis(self):
|
|
return 'pyqt{}-tools Example Button What\'s this'.format(major)
|
|
|
|
def isContainer(self):
|
|
return False
|
|
|
|
def includeFile(self):
|
|
return 'pyqt{}_plugins.examplebutton'.format(major)
|