Organizar graficos dentro de um QGroupBox

31 views
Skip to first unread message

Alexandre Leonel

unread,
Oct 18, 2021, 3:30:31 PM10/18/21
to python...@googlegroups.com
Boa tarde meus amigos por favor alguem consegue me ajudar a colocar meus gráficos em um QGroupBox? fiz algumas pesquisas, mas não consigo, entendo que eu deveria inserir a construção do grafico em um objeto e inserir em meu widget, mas não sei como fazer isso. Agradeço desde já segue meu código teste.




import sys
from PyQt5.QtWidgets import *

import matplotlib.pyplot as plt
import numpy as np
from numpy.core.fromnumeric import size

class AppDemo(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("PyQtGraph")
self.setGeometry(100, 100, 600, 500)
self.grafico()
self.show()

def grafico(self):

btn = QPushButton('Push Button')
text = QLineEdit("Line Edit")
check = QCheckBox("Check Box")

# Aqui criamos a área que plotamos o gráfico e definimos seu tamanho
fig, ax = plt.subplots(figsize=(6, 6), subplot_kw=dict(aspect="equal"))

# dados para compor o gráfico
recipe = ["Trigo", "Arroz", "Fijão", "Batata", "Aipim"]

# Definindo a quanbtidade de cada dado
data = [100, 250, 200, 120, 80]

# Aqui serão colocados os kg e as porcentagens no gráfico
def func(pct, allvals):
# calc %
np.absolute = int(pct/100.*np.sum(allvals))
# Fazendo legenda do grafico com % e kg
return "{:.1f}\n({:d} kg)".format(pct, np.absolute)

# Criando o gráfico e colocando a função da legenda interna
wedges, texts, autotexts = ax.pie(data, autopct=lambda pct: func(pct, data), textprops=dict(color='w'))

# Definindo a caixa de legenda externa, título, localização e onde vai ancorar o box
ax.legend(wedges, recipe, title="Produtos", loc="center left", bbox_to_anchor=(1, 0, 0.5, 1))

#Aqui definimos o tamanho do texto de dentro do gráfico, e o peso da fonte como bold
plt.setp(autotexts, size=8, weight="bold")

# Título do gráfico
ax.set_title("Quantidade de itens do Estoque em kg:")

self.layout = QVBoxLayout()
self.groupBoxLayout = QGridLayout()
self.groupBox = QGroupBox('Gráficos')
self.groupBox.setFlat(False)

# self.groupBoxLayout.addWidget(plt.setp)
self.groupBoxLayout.addWidget(btn)


self.groupBox.setLayout(self.groupBoxLayout)
self.layout.addWidget(self.groupBox)
self.setLayout(self.layout)

# self.layout.addWidget(text)
# self.layout.addWidget(check)
# self.layout.addWidget(btn)


# Mostra o gráfico
# plt.show()


if __name__== '__main__':
app = QApplication(sys.argv)

demo = AppDemo()
# demo.show()

try:
sys.exit(app.exec_())
except SystemExit:
print('Closing Window...')
--
Alexandre L. de Oliveira

Antonio Ennio de Jesus

unread,
Oct 18, 2021, 9:15:17 PM10/18/21
to python...@googlegroups.com
Se você mandar o código no corpo do e-mail vai facilitar para lhe ajudar , o screenshot não resolve muita pois teremos que re-digitar todo o seu código , o que tomaria um tempo desnecessário.


Em seg, 18 18e out 18e 2021 às 16:30, Alexandre Leonel
<alel...@gmail.com> escreveu:
--
--
------------------------------------
Grupo Python-Brasil
https://wiki.python.org.br/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@googlegroups.com
---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/python-brasil/CAGjOVMb4XCGMNvp3x-SgjLFmHQp-O7E6KSw7sjEKurKWowNE8w%40mail.gmail.com.

Alexandre Leonel

unread,
Oct 19, 2021, 6:58:40 AM10/19/21
to python...@googlegroups.com
Não é um screenshot é o codigo mesmo só esta com o funto preto, segue novamente. obrigado
Reply all
Reply to author
Forward
0 new messages