我发现我不是the only one在pyqtgraph中遇到背景颜色问题 - 我正在编写一个QGIS软件插件,它有一个带图形的附加对话框。我正在尝试设置背景颜色,只有在我使用QGIS Plugin Reloader插件重新加载插件后才会加载(此插件是为开发插件的人设计的,因此在代码更改后,您刷新并拥有一个新的一个加载到QGIS中。它不被普通用户使用)。
我的代码如下:
import pyqtgraph
...
def prepareGraph(self): # loads on button click
self.graphTitle = 'Graph one'
# prepare data - simplified, but data display correctly
self.y = something
self.x = something_else
self.buildGraph()
def buildGraph(self):
""" Add data to the graph """
pyqtgraph.setConfigOption('background', (230,230,230))
pyqtgraph.setConfigOption('foreground', (100,100,100))
dataColor = (102,178,255)
dataBorderColor = (180,220,255)
barGraph = self.graph.graphicsView
barGraph.clear()
barGraph.addItem(pyqtgraph.BarGraphItem(x=range(len(self.x)), height=self.y, width=0.5, brush=dataColor, pen=dataBorderColor))
barGraph.addItem(pyqtgraph.GridItem())
barGraph.getAxis('bottom').setTicks([self.x])
barGraph.setTitle(title=self.graphTitle)
self.showGraph()
def showGraph(self):
self.graph.show()
有趣的是 buildGraph()
的所有部分都没有任何问题加载(即使是前景色!),只有背景颜色不会。
这是一个已知的错误还是设置前景色和背景色之间有区别?链接的问题无助于我解决这个问题。
pyqtgraph==0.9.10
PyQt4==4.11.4
Python 2.7.3
答案 0 :(得分:0)
pyqtgraph documentation说明setConfigOption
次设置:
请注意,必须在创建任何小部件
之前设置此项
在我的代码中我有
def buildGraph(self):
pyqtgraph.setConfigOption('background', (230,230,230))
pyqtgraph.setConfigOption('foreground', (100,100,100))
barGraph = self.graph.graphicsView
那就是我认为的"之前"地方,但它创建了一个对象,而不是小部件。应该在类中编写setConfigOption
,它负责存储pyqtgraph
对象。在我的例子中,__init__
函数在一个单独的文件中创建一个单独的对话框:
从PyQt4导入QtGui,QtCore 来自plugin4_plot_widget导入Ui_Dialog 来自plugin4_dialog import plugin4Dialog import pyqtgraph
class Graph(QtGui.QDialog, Ui_Dialog):
def __init__(self):
super(Graph, self).__init__()
pyqtgraph.setConfigOption('background', (230,230,230))
pyqtgraph.setConfigOption('foreground', (100,100,100))
self.setupUi(self)
if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
main = Graph()
main.show()
sys.exit(app.exec_())