我正在尝试将matplotlib(版本3.0.0)图形嵌入到pyqt5gui(版本5.9.2)中。因此,我正在创建一个画布并将其添加到布局中。但是,当我开始更改大小属性(如canvas.setFixedSize(500,500)
),然后通过拖动窗口的一角来更改gui的大小时,我会得到一个黑色的边框:。你知道吗
这种行为可以通过添加fig.patch.set_facecolor('#ffffff')
来修复。然而,我想知道这种行为是否是预期的,或者是否有另一种方法来防止黑边界出现?你知道吗
import sys
from PyQt5.QtWidgets import (QWidget, QGridLayout,QPushButton, QApplication, QSizePolicy)
from matplotlib.backends.qt_compat import QtCore, QtWidgets, is_pyqt5
if is_pyqt5():
from matplotlib.backends.backend_qt5agg import (
FigureCanvas, NavigationToolbar2QT as NavigationToolbar)
else:
from matplotlib.backends.backend_qt4agg import (
FigureCanvas, NavigationToolbar2QT as NavigationToolbar)
from matplotlib.figure import Figure
import matplotlib.pyplot as plt
class ApplicationWindow(QtWidgets.QMainWindow):
def __init__(self):
super().__init__()
self._main = QtWidgets.QWidget()
self.setCentralWidget(self._main)
layout = QGridLayout(self._main)
fig, ax = plt.subplots(1,1)
canvas = FigureCanvas(fig)
# enabling one of following options leads to black frame
#canvas.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)
#canvas.setFixedSize(500,500)
#which can be fixed by
#fig.patch.set_facecolor('#ffffff')
layout.addWidget(canvas)
if __name__ == "__main__":
# Check whether there is already a running QApplication (e.g., if running
# from an IDE).
qapp = QtWidgets.QApplication.instance()
if not qapp:
qapp = QtWidgets.QApplication(sys.argv)
app = ApplicationWindow()
app.show()
qapp.exec_()
目前没有回答
相关问题 更多 >
编程相关推荐