繁体   English   中英

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画布与QGroupBox内部的一堆按钮水平对齐

使用setStyleSheet在GroupBox周围绘制边框:

IVGroup.setStyleSheet("QGroupBox { background-color: \
                            rgb(228, 241, 254); border: \
                            3px solid rgb(58, 83, 155); }")

下面就来的图片的链接UI当前的外观用户界面

然后我的问题是: 如何在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样式表参考,通用QWidget不支持边框),并将此框架与QGroupBox水平对齐-然后嵌入mpl FigureCanvas进入QFrame-然后在QFrame周围绘制边框-但这似乎是一种真正的回旋方式

我发现的唯一解决方法是将FigureCanvas放置在QHboxLayout或QVBoxLayout中,然后将该布局添加到QGroupBox中,然后使用QSS样式字符串(如“”“ QGroupBox {background-color:rgb(48 ,47,47); border:8px solid rgb(108,122,137); border-radius:6px}“”“

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM