How to show a graph with pygal in QMainWindow

1

I'm trying to show a graph x in a QMainWindow using pygal however the graph is not shown, this is the code I'm using

from PyQt5.QtWidgets import QMainWindow,QApplication

from PyQt5.QtCore import QDate
import pygal


class Principal(QMainWindow):
    def __init__(self):
        QMainWindow.__init__(self)

        self.bar = pygal.Bar()
        self.bar.add("Tabla", [1,2,3,4,5,6,7,8])
        self.bar.render()

app = QApplication([])
p = Principal()
p.show()
p.resize(900,600)
app.exec_()

Try to also use a frame but it does not work

    
asked by Revsky01 07.09.2018 в 04:51
source

1 answer

1

pygal is a library that serves to generate images in svg format so one option is to use < a href="http://doc.qt.io/qt-5/qsvgwidget.html"> QSvgWidget :

from PyQt5 import QtCore, QtWidgets, QtSvg
import pygal


class Principal(QtWidgets.QMainWindow):
    def __init__(self):
        QtWidgets.QMainWindow.__init__(self)

        svg_widget = QtSvg.QSvgWidget()
        self.setCentralWidget(svg_widget)

        bar = pygal.Bar()
        bar.add("Tabla", [1,2,3,4,5,6,7,8])
        data = bar.render()
        svg_widget.load(data)


if __name__ == '__main__':
    import sys

    app = QtWidgets.QApplication(sys.argv)
    p = Principal()
    p.show()
    p.resize(900,600)
    sys.exit(app.exec_())

    
answered by 07.09.2018 / 07:43
source