#1
|
|||
|
|||
Pyqt and Vizard 4? Is it compatible?
Can Vizard be embbeded in Pyqt? It is much more powerful than wxpython. But I have no clue as to where to start.
Has anyone ever tried doing it? |
#2
|
|||
|
|||
I haven't personally tried, but I would guess that it should be possible. The concept should be the same as wxPython.
You will need to create a blank PyQT window and pass its window handle to viz.go, along with the viz.EMBEDDED flag. After that, you will just need to make sure you update the Vizard graphics loop periodically using the viz.frame() command. |
#3
|
|||
|
|||
Good news! I was able to test out PyQt and get it working with Vizard. I've created a knowledge base article describing how to get it working. Let me know if you have any issues.
|
#4
|
|||
|
|||
THANK YOU VERY MUCH!!!
This is impressive!!!! We are going to port our code to QT. Thanks! |
#5
|
|||
|
|||
Hi,
I'm using the same code provided and i'm trying to accomplish something similar to this but for PySide. However, i'm having a small problem. The following line: Code:
viz.go(viz.EMBEDDED,window=int(self.widget.winId())) Code:
Traceback (most recent call last): File "<string>", line 11, in <module> File "F:\Docs\Vizard Scripts\PyQTMenu.py", line 107, in <module> mainWin = MainWindow() File "F:\Docs\Vizard Scripts\PyQTMenu.py", line 26, in __init__ viz.go(viz.EMBEDDED,window=int(self.widget.winId())) TypeError: int() argument must be a string or a number, not 'PyCObject Best regards, Alex. |
#6
|
|||
|
|||
Solved.
For the record: Code:
# Additional imports from ctypes import pythonapi, c_void_pointer, py_object # Setup arguments and return types pythonapi.PyCObject_AsVoidPtr.restype = c_void_p pythonapi.PyCObject_AsVoidPtr.argtypes = [ py_object ] # Convert PyCObject to a void pointer hWnd = pythonapi.PyCObject_AsVoidPtr( view.winId() ) # Then use hWnd viz.go( viz.EMBEDDED, window=int( hWnd ) ) |
|
|