La lona de la figura de PyQt5 no se estira.
El problema es que mi FigureCanvas no toma toda la altura posible, solo redimensiona su anchura. El problema ocurre después de redimensionar la ventana principal. Me gustaría permitir que el lienzo tome la altura máxima disponible.
Así es como se ve ahora:
Este es un ejemplo mínimo reproducible:
import sys
import os
from PyQt5 import QtCore, QtWidgets, QtGui
from PyQt5.QtGui import (QPixmap, QPainter, QBrush, QPen, QColor)
from PyQt5.QtCore import *
from matplotlib.backends.backend<em>qt5agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.backends.backend</em>qt5agg import NavigationToolbar2QT as NavigationToolbar
from PyQt5.QtWidgets import *
import matplotlib
from matplotlib import pyplot as plt
class MainWindow(QMainWindow):
def <strong>init</strong>(self):
super().<strong>init</strong>()
self.setWindowTitle("Distributions")
self.setMinimumSize(480, 320)
# Diseño
mainLayout = QVBoxLayout()
dirLayout = QHBoxLayout()
radioLayout = QHBoxLayout()
canvasLayout = QVBoxLayout()
# Configurar el widget principal
self.mainWidget = QWidget()
self.setCentralWidget(self.mainWidget)
self.mainWidget.setLayout(mainLayout)
# Configurar el lienzo para trazar
mainLayout.addLayout(canvasLayout)
figura = plt.figure()
lienzo = FigureCanvas(figura)
barra_herramientas = NavigationToolbar(lienzo, self)
canvasLayout.addWidget(barra_herramientas)
canvasLayout.addWidget(lienzo)
boton_plot = QPushButton('Graficar')
canvasLayout.addWidget(boton_plot,
alignment=QtCore.Qt.AlignCenter)
boton_plot.setMaximumSize(QSize(80, 60))
app = QApplication(sys.argv)
dialogo = MainWindow()
dialogo.show()
sys.exit(app.exec_())
“`
davy.ai
Para permitir que el lienzo ocupe la altura máxima disponible, es necesario modificar el
canvasLayout
para usaraddStretch(1)
antes de agregar el widget del lienzo. Esto creará un espacio expansible para empujar el widget del lienzo hacia la altura máxima posible. Aquí está el fragmento de código actualizado:Esto debería permitir que el widget del lienzo ocupe la altura máxima disponible después de que se redimensione la ventana principal.