I noticed that this object cannot generate text that spans in multiple 
lines. 
For example, if I try to render "Line #1\r\nLine#2", everything gets 
rendered in the same line. 
Is there a workaround for that ? 

On Sunday, January 28, 2018 at 10:05:07 PM UTC-8 [email protected] wrote:

> Thank you Ludovic for the helpful example. I came to this need and made it 
> an opengl item, which is similar to other existing items and fit in my 
> project better. Then I put it into my fork of the pyqtgraph GitHub repo; I 
> will see to make a PR of it if it can help others.
>
> import pyqtgraph.opengl as gl
> from pyqtgraph.opengl.GLGraphicsItem import GLGraphicsItem
> from pyqtgraph.Qt import QtCore, QtGui
>
> class GLTextItem(GLGraphicsItem):
>     def __init__(self, X=None, Y=None, Z=None, text=None):
>         GLGraphicsItem.__init__(self)
>
>         self.text = text
>         self.X = X
>         self.Y = Y
>         self.Z = Z
>
>     def setGLViewWidget(self, GLViewWidget):
>         self.GLViewWidget = GLViewWidget
>
>     def setText(self, text):
>         self.text = text
>         self.update()
>
>     def setX(self, X):
>         self.X = X
>         self.update()
>
>     def setY(self, Y):
>         self.Y = Y
>         self.update()
>
>     def setZ(self, Z):
>         self.Z = Z
>         self.update()
>
>     def paint(self):
>         self.GLViewWidget.qglColor(QtCore.Qt.white)
>         self.GLViewWidget.renderText(self.X, self.Y, self.Z, self.text)
>
> def main():
>     app = QtGui.QApplication([])
>     w = gl.GLViewWidget()
>     w.opts['distance'] = 40
>     w.show()
>
>     t = GLTextItem(X=0, Y=5, Z=10, text="Your text")
>     t.setGLViewWidget(w)
>     w.addItem(t)
>
>     g = gl.GLGridItem()
>     w.addItem(g)
>
>     app.exec_()
>
> if __name__ == '__main__':
>     main()
>
>
>
> On Monday, May 30, 2016 at 1:08:52 AM UTC-5, Ludovic Angot-Petit wrote:
>
>> The only hint I can provide is from here:
>> https://groups.google.com/d/msg/pyqtgraph/FNxcMh3M6nc/XGS2C447n_MJ
>>
>> It works for me but I don't know how to add multiple text instances, if 
>> you or any one knows, thanks to help!
>>
>> Here is a simple working example based on the above:
>> import pyqtgraph.opengl as gl
>> import pyqtgraph as pg
>> from pyqtgraph.Qt import QtCore as pqc
>> from pyqtgraph.Qt import QtGui as pqg
>>
>> class MyGLView(gl.GLViewWidget):
>>     def __init__(self, X,Y,Z,text):
>>         super(MyGLView, self).__init__()
>>         self.text = text
>>         self.X = X
>>         self.Y = Y
>>         self.Z = Z
>>
>>     def setText(self, text):
>>         self.text = text
>>         self.update()
>>
>>     def setX(self, X):
>>         self.X = X
>>         self.update()
>>
>>     def setY(self, Y):
>>         self.Y = Y
>>         self.update()
>>         
>>     def setZ(self, Z):
>>         self.Z = Z
>>         self.update()        
>>         
>>     def paintGL(self, *args, **kwds):
>>         gl.GLViewWidget.paintGL(self, *args, **kwds)
>>         self.qglColor(Qt.white)
>>         self.renderText(self.X, self.Y, self.Z, self.text)
>>
>> app = pqg.QApplication([])
>> w = MyGLView(X=0,Y=5,Z=0,text="Your text")
>>
>> g = gl.GLGridItem()
>> w.addItem(g)
>>
>> w.show()
>>
>> if __name__ == '__main__':
>>     pqg.QApplication.instance().exec_() 
>>
>> Ludovic
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"pyqtgraph" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/pyqtgraph/907824ed-9be5-4ed1-830e-2b0b577ef859n%40googlegroups.com.

Reply via email to