当我们在使用pyqtgraph绘制图表时,如果图表个数很多,我们选择使用QScrollArea控件来加载图表,此时会出现背景颜色失效的问题。
import random
import sys
import time
from PyQt5.Qt import *
import pyqtgraph as pg
from PyQt5.QtWidgets import QScrollArea
class Text(QWidget):
def __init__(self):
self.p = {}
super().__init__()
self.setWindowTitle("窗口标题")
self.resize(600,500)
pg.setConfigOption('background', '#dddddd') # 设置背景颜色
pg.setConfigOption('foreground', 'k') # 设置前景色
self.win = pg.GraphicsLayoutWidget()
self.setup_ui()
self.wave_from()
def wave_from(self):
for i in range(200):
self.p[i] = self.win.addPlot(i,0)
self.p[i].plot([random.randint(1,10) for i in range(5)],pen='red')
self.p[i].setTitle("plot_%s"%i)
self.p[i].setMinimumHeight(200) # 设置最小的高度
self.p[i].setMaximumHeight(200) # 设置最大的高度
m = 206*200
self.win.setMinimumHeight(m) # 设置最小的高度
def setup_ui(self):
self.scroll_area = QScrollArea(self)
self.scroll_area.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn) # 滚动条总打开
self.scroll_area.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
self.scroll_area.setWidgetResizable(True) # 设置部件可以调整大小,重要
self.scroll_area.setWidget(self.win)
# self.label.setFixedSize(300,300)
layout = QHBoxLayout(self)
layout.addWidget(self.scroll_area)
# self.win.removeItem(self.p[0])
from pyqtgraph.graphicsItems.PlotItem.PlotItem import PlotItem
if __name__ == '__main__':
app = QApplication(sys.argv)
t = Text()
t.show()
app.exec_()
代码如上所述,结果如下:
当我们使用默认的黑色背景色时,没有这样的错误产生。经过测试,这个黑色背景出现的位置,在不同的电脑会出现在不同的位置。
有没有一种效果可以改变他的背景颜色,让他全部变成白色的。