【发布时间】:2022-01-18 04:01:54
【问题描述】:
问题是我的 FigureCanvas 没有采用所有可能的高度,它只是调整它的宽度。调整主窗口大小后会出现此问题。我想让画布占据最大可用高度。
这就是现在的样子
这是最小的可重现示例:
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_qt5agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.backends.backend_qt5agg import NavigationToolbar2QT as NavigationToolbar
from PyQt5.QtWidgets import *
import matplotlib
from matplotlib import pyplot as plt
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("Distributions")
self.setMinimumSize(480, 320)
# Layout
mainLayout = QVBoxLayout()
dirLayout = QHBoxLayout()
radioLayout = QHBoxLayout()
canvasLayout = QVBoxLayout()
# Setting main Widget
self.mainWidget = QWidget()
self.setCentralWidget(self.mainWidget)
self.mainWidget.setLayout(mainLayout)
# Setting canvas to plot
mainLayout.addLayout(canvasLayout)
figure = plt.figure()
canvas = FigureCanvas(figure)
toolbar = NavigationToolbar(canvas, self)
canvasLayout.addWidget(toolbar)
canvasLayout.addWidget(canvas)
plotButton = QPushButton('Plot')
canvasLayout.addWidget(plotButton,
alignment=QtCore.Qt.AlignCenter)
plotButton.setMaximumSize(QSize(80, 60))
app = QApplication(sys.argv)
dialogi = MainWindow()
dialogi.show()
sys.exit(app.exec_())
【问题讨论】:
-
尝试删除
canvasLayout.setAlignment(Qt.AlignCenter),否则请提供minimal reproducible example。 -
它不起作用。我添加了重现问题的整个代码
-
@DamianRecruit 您提供的代码没有生成您指示的图像,我得到:i.imgur.com/5JsT0H7.png
-
@eyllanesc 只要您不调整窗口大小就可以。很抱歉
-
@DamianRecruit 看来你还没有理解我,在你的图像中你显示了 QRadioButton 但在你的代码中却没有它的踪迹,我的 DV。