Python Forum

Full Version: Using 3rd party QT widgets in Python
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Good day,
I'm studying PyQt, so I decided to try adding some external widget to Qt Designer.  Let's say I have this gauge widget: https://github.com/open-gui/custom-widgets. It is written in C++,  I followed some tutorial and compiled it, so it appears in Qt Designer as QCircularBar:

[Image: nw3EbAS.png]

I converted *.ui file to python script:
from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(386, 384)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.qCircularBar = QCircularBar(self.centralwidget)
        self.qCircularBar.setGeometry(QtCore.QRect(50, 20, 231, 231))
        self.qCircularBar.setProperty("value", 63.0)
        self.qCircularBar.setMinValue(0.0)
        self.qCircularBar.setMaxValue(100.0)
        self.qCircularBar.setThreshold(80.0)
        self.qCircularBar.setUnits("")
        self.qCircularBar.setStartAngle(210)
        self.qCircularBar.setEndAngle(-30)
        self.qCircularBar.setProperty("enableThreshold", True)
        self.qCircularBar.setProperty("enableNumericIndicator", True)
        self.qCircularBar.setObjectName("qCircularBar")
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 386, 21))
        self.menubar.setObjectName("menubar")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.qCircularBar.setToolTip(_translate("MainWindow", "Meter"))
        self.qCircularBar.setWhatsThis(_translate("MainWindow", "Meter widget"))
        self.qCircularBar.setLabel(_translate("MainWindow", "VOL"))

from qcircularbar import QCircularBar

if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    MainWindow = QtWidgets.QMainWindow()
    ui = Ui_MainWindow()
    ui.setupUi(MainWindow)
    MainWindow.show()
    sys.exit(app.exec_())
But when I run it, I get the following:
Quote:builtins.ImportError: No module named 'qcircularbar'

Could someone tell me, where to go further? Does it need some kind of wrapper module? Need a hint :)
PyPi returns a large list of possibilities. I believe that circularbar is a custom private widget
PyPi link: https://pypi.python.org/pypi?%3Aaction=s...mit=search
possibly here: https://github.com/open-gui/custom-widgets
Thanks for reply! However, I took qcircularbar just as an example to illustrate my question, how do I use any external Qt widgets from Python? As you see, I managed to install the widget to Qt Designer, but it needs some extra code.
There are several python interfaces, I don' use them myself, but you can look at them
and decide. see: https://pypi.python.org/pypi?%3Aaction=s...mit=search
I think PyQt4 and PyQt5 are very widely used.