gpt4 book ai didi

python - 图表 (pyqtgraph) 未在 QML 生成的窗口中绘制

转载 作者:行者123 更新时间:2023-12-04 14:38:25 24 4
gpt4 key购买 nike

我正在尝试在 qml 生成的窗口中绘制图形。因为我需要将 QML 用于 GUI(客户要求)。我设法在 QML 中获取图形窗口,但它什么也没绘制。我不知道我的代码是否正确,请提出建议,指出正确的方向。

主要.py:

#! /usr/bin/python

import os
import sys
from PySide import QtGui
from PySide import QtCore
from PySide import QtDeclarative
import numpy as np
import pyqtgraph as pg

class Graph (QtDeclarative.QDeclarativeItem):
def __init__(self, parent = None):
QtDeclarative.QDeclarativeItem.__init__(self, parent)

#----------- self.setFlag(QtGui.QGraphicsItem.ItemHasNoContents, False )


self.dataPlot = np.cos(np.linspace(0, 5 *np.pi , 1000))

self.graph = pg.PlotItem()
self.graph.plot( self.dataPlot, pen=(0,255,0))
self.graph.showGrid(x=True, y=True)


self.view = pg.GraphicsView()
self.view.setCentralItem(self.graph)
#-------------------------------------- self.setCentralWidget(self.view)

mProxy = QtGui.QGraphicsProxyWidget(self)
mProxy.setWidget(self.view)


if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)

QtDeclarative.qmlRegisterType(Graph, 'myPyQtGraph', 1, 0, 'PyQtGraph')

view = QtDeclarative.QDeclarativeView()
view.setSource(QtCore.QUrl('main.qml'))
view.setResizeMode(QtDeclarative.QDeclarativeView.SizeRootObjectToView)

rootObject = view.rootObject()
view.connect(view.engine() , QtCore.SIGNAL('quit()') ,app.instance( ) , QtCore.SLOT('quit()') )

view.show()
sys.exit(app.exec_())

主.qml:

import QtQuick 1.1
import myPyQtGraph 1.0

Rectangle {
id : page
width: 900
height: 400
color: "#343434"

PyQtGraph {
id: angleGraphID
anchors{
top: parent.top
left: parent.left
topMargin: 50
leftMargin: 50
}
width: 800
height: 300
//color: "#f5deb3"
}

Text {
id: text_Heading
anchors{
top: parent.top
left: parent.left
topMargin: 20
leftMargin: 50
}
text: qsTr("PyqtGraph QML Test")
font.pixelSize: 12
}
}

这就是我现在得到的: enter image description here

最佳答案

我最好的猜测是这个问题与这个错误有关: http://srinikom.github.com/pyside-bz-archive/932.html

然而,它似乎只是 QML 上下文中的问题,因为 PySide 在 QML 之外工作正常。您可以通过注释掉 pyqtgraph/graphicsItems/GraphicsObject.py 中的“itemChange”方法来解决此问题。

关于python - 图表 (pyqtgraph) 未在 QML 生成的窗口中绘制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13240066/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com