我有一个带有嵌入式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内的一组按钮水平对齐
GroupBox使用setStyleSheet:
在其周围绘制边框IVGroup.setStyleSheet("QGroupBox { background-color: \
rgb(228, 241, 254); border: \
3px solid rgb(58, 83, 155); }")
这是一个指向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(通用QWidgets根据Qt样式表引用不支持边框)并将此框架水平地与QGroupBox对齐 - 然后将mpl FigureCanvas嵌入到QFrame中 - 然后在QFrame周围绘制一个边框 - 但这似乎是一种非常迂回的方式
答案 0 :(得分:0)
我找到的唯一解决方法是将FigureCanvas放入QHboxLayout或QVBoxLayout,然后将该布局添加到QGroupBox,然后使用QSS样式字符串调用QGroupBox.setStyle(),如“”QGroupBox { background-color:rgb(48,47,47); 边界:8px solid rgb(108,122,137); border-radius:6px } “”“