PyQt4 如何在嵌入式 Matplotlib FigureCanvas 周围绘制边框
PyQt4 How to draw border around embedded Matplotlib FigureCanvas
我有一个带有嵌入式 mpl 图的 pyqt 应用程序,如下所示:
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
...
self.LEEM_fig, (self.LEEM_ax, self.IV_ax) = plt.subplots(1, 2, figsize=(8,8), dpi=100)
self.LEEM_canvas = FigureCanvas(self.LEEM_fig)
...
这个 mpl canvas 与 QGroupBox 内的一堆按钮水平对齐
GroupBox 使用 setStyleSheet 在其周围绘制了边框:
IVGroup.setStyleSheet("QGroupBox { background-color: \
rgb(228, 241, 254); border: \
3px solid rgb(58, 83, 155); }")
这是一张 link UI 目前的照片
User Interface
那么我的问题是:
如何在 FigureCanvas 周围绘制边框?
我天真地尝试将 styleSheet 设置为 self.LEEM_Canvas 这是一个 FigureCanvas
但这没有用
self.LEEM_canvas.setStyleSheet("FigureCanvas { background-color: \
rgb(228, 241, 254); border: \
3px solid rgb(58, 83, 155); }")
接下来我唯一能想到的尝试是在当前选项卡内嵌入一个单独的 QFrame(根据 Qt 样式表参考,通用 QWidgets 不支持边框)并将此框架与 QGroupBox 水平对齐- 然后将 mpl FigureCanvas 嵌入 QFrame - 然后在 QFrame 周围画一个边框 - 但这似乎是一个真正的迂回方式
我发现的唯一解决方法是将 FigureCanvas 放入 QHboxLayout 或 QVBoxLayout,然后将该布局添加到 QGroupBox,然后使用 QSS 样式字符串调用 QGroupBox.setStyle(),例如“””QGroupBox {
背景色:rgb(48, 47, 47);
border: 8px solid rgb(108, 122, 137);
边界半径:6px
}"""
我有一个带有嵌入式 mpl 图的 pyqt 应用程序,如下所示:
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
...
self.LEEM_fig, (self.LEEM_ax, self.IV_ax) = plt.subplots(1, 2, figsize=(8,8), dpi=100)
self.LEEM_canvas = FigureCanvas(self.LEEM_fig)
...
这个 mpl canvas 与 QGroupBox 内的一堆按钮水平对齐
GroupBox 使用 setStyleSheet 在其周围绘制了边框:
IVGroup.setStyleSheet("QGroupBox { background-color: \
rgb(228, 241, 254); border: \
3px solid rgb(58, 83, 155); }")
这是一张 link UI 目前的照片 User Interface
那么我的问题是: 如何在 FigureCanvas 周围绘制边框? 我天真地尝试将 styleSheet 设置为 self.LEEM_Canvas 这是一个 FigureCanvas 但这没有用
self.LEEM_canvas.setStyleSheet("FigureCanvas { background-color: \
rgb(228, 241, 254); border: \
3px solid rgb(58, 83, 155); }")
接下来我唯一能想到的尝试是在当前选项卡内嵌入一个单独的 QFrame(根据 Qt 样式表参考,通用 QWidgets 不支持边框)并将此框架与 QGroupBox 水平对齐- 然后将 mpl FigureCanvas 嵌入 QFrame - 然后在 QFrame 周围画一个边框 - 但这似乎是一个真正的迂回方式
我发现的唯一解决方法是将 FigureCanvas 放入 QHboxLayout 或 QVBoxLayout,然后将该布局添加到 QGroupBox,然后使用 QSS 样式字符串调用 QGroupBox.setStyle(),例如“””QGroupBox { 背景色:rgb(48, 47, 47); border: 8px solid rgb(108, 122, 137); 边界半径:6px }"""