在pyqt4中显示matplotlib图表,怎么做到自动缩放?

class StartShow(QtGui.QMainWindow):

def __init__(self, parent=None):
    super(QtGui.QWidget,self).__init__()
    self.ui = Ui_MainWindow()
    self.ui.setupUi(self)
    
    self.matparent = ShowParent()
    self.canvas = FigureCanvas(self.matparent.getFigure())
    self.canvas.setParent(self.ui.frameMtpshow)
    self.canvas.setSizePolicy(QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Expanding)
  
  

在Frame中将matplotlib展示出来,虽然全都放在布局中,但是matplotlib的画布必须初始化大小才能显示,但当窗口最大化后虽然其他空间都可以自动缩放但matplotlib的画布大小是确定的,能设置根据窗口大小或者内容大小自动缩放吗?
求大神指点

阅读 7.2k
1 个回答

碰到同样的问题,试过了很多次,找到了窍门:
1、创建一个widget,在widget中加上QVBoxLayout
2、创建你的canvas,注意其父本是widget,不是QVBoxLayout
3、在QVBoxLayout中调用addWidget把canvas加进去
(第一步也可以在designer中做好)

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题