PyQt5 中的 Matplotlib:如何去除沿边的小 space
Matplotlib in PyQt5: How to remove the small space along the edge
我在 PyQt5 widget
中的 QVBoxLayout
中有一个 matplotlib.pyplot
对象。边缘有小空间,这真的很烦人。我该如何删除它?
请参阅下面的屏幕截图。
我已经试过setlayoutSpacing(0)
,但没有效果。
这里是精简代码(删去很多数据处理代码):
class MpWidget_SCF(Qt.QWidget):
def __init__(self, parent=None, y=[]):
super(MpWidget_SCF, self).__init__()
self.setParent(parent)
self.dpi = 50
self.fig = MpPyplot.figure(figsize=(2, 2), dpi=self.dpi, )
self.SCF_subplot = MpPyplot.subplot(1, 1, 1)
self.canvas = MpFigureCanvas(self.fig)
self.canvas.setParent(self)
self.SCF_subplot.clear()
self.SCF_subplot.plot(range(len(y)), y, 'r')
self.canvas.draw()
self.vLayout = Qt.QVBoxLayout()
self.vLayout.addWidget(self.canvas)
self.vLayout.setSpacing(0)
self.setLayout(self.vLayout)
class myWidget(Qt.QWidget):
def __init__(self):
super(myWidget, self).__init__()
self.main = Ui_OutputWindow_Form()
self.main.setupUi(self)
self.main.SCF_Graphic_Widget = MpWidget_SCF(self)
self.main.verticalLayout_2.addWidget(self.main.SCF_Graphic_Widget)
self.show()
您可以删除 default margins:
self.vLayout.setContentsMargins(0, 0, 0, 0)
我在 PyQt5 widget
中的 QVBoxLayout
中有一个 matplotlib.pyplot
对象。边缘有小空间,这真的很烦人。我该如何删除它?
请参阅下面的屏幕截图。
我已经试过setlayoutSpacing(0)
,但没有效果。
这里是精简代码(删去很多数据处理代码):
class MpWidget_SCF(Qt.QWidget):
def __init__(self, parent=None, y=[]):
super(MpWidget_SCF, self).__init__()
self.setParent(parent)
self.dpi = 50
self.fig = MpPyplot.figure(figsize=(2, 2), dpi=self.dpi, )
self.SCF_subplot = MpPyplot.subplot(1, 1, 1)
self.canvas = MpFigureCanvas(self.fig)
self.canvas.setParent(self)
self.SCF_subplot.clear()
self.SCF_subplot.plot(range(len(y)), y, 'r')
self.canvas.draw()
self.vLayout = Qt.QVBoxLayout()
self.vLayout.addWidget(self.canvas)
self.vLayout.setSpacing(0)
self.setLayout(self.vLayout)
class myWidget(Qt.QWidget):
def __init__(self):
super(myWidget, self).__init__()
self.main = Ui_OutputWindow_Form()
self.main.setupUi(self)
self.main.SCF_Graphic_Widget = MpWidget_SCF(self)
self.main.verticalLayout_2.addWidget(self.main.SCF_Graphic_Widget)
self.show()
您可以删除 default margins:
self.vLayout.setContentsMargins(0, 0, 0, 0)