Thanks Patrick,

I already have a Ui file from Designer. If I understand correctly, it looks
like you're basically doing the reverse of what pysideuic does, that is to
take a .py file and create al .ui and then do a loadUiType().
Your <customwidgets> section did prompt me to look at that section in my Ui
file.

 <customwidgets>
  <customwidget>
   <class>LayoutWidget</class>
   <extends>QWidget</extends>
   <header>pyqtgraph</header>
   <container>1</container>
  </customwidget>
 </customwidgets>

I noticed that the Designer showed my ParameterTree as unused. (I'm not
sure where that came from.I edited that file, then used Git to get it back
to before I edited it, and Designer is not showing that message anymore)
My ParameterTree is actually added in to my main to a Layout from another
Ui file that does have ParameterTree as a promoted widget.

(in parametertreeDialog.ui:)
 <customwidgets>
  <customwidget>
   <class>ParameterTree</class>
   <extends>QTreeWidget</extends>
   <header>pyqtgraph.parametertree</header>
  </customwidget>
 </customwidgets>

This is part of a QDialog that I pop up when I want to change or view the
parameters.  I think I need to add
  <customwidget>
   <class>ParameterTree</class>
   <extends>QTreeWidget</extends>
   <header>pyqtgraph.parametertree</header>
  </customwidget>

to my main Ui file even though the widget

I do use pyqtgraph.Qt.loadUiType for the MainWindow like in the
designerExample.py example, but I would like to use uic.loadUi(),
loader.load() for my other Ui files. I'm trying to avoid creating *.py
files using pysideuic.
I'm going to try adding in ParameterTree as a promoted widget and see what
happens.

----
Tim Williams


On Sun, Jan 31, 2021 at 6:12 AM Patrick <[email protected]> wrote:

> Hi,
>
> I'm not sure if this will help you, but I've been using PySide2 for one of
> my latest projects and I remember having all sorts of issues getting .ui to
> load, as the uic.loadUi() method I used to use for PyQt5 didn't directly
> translate. It turns out PySide2 only fairly recently implemented the
> PySide2.QtUiTools.loadUiType() method which was the only way I got it to
> work, but it wasn't (isn't?) documented. I believe it should also work
> using PyQt5.uic.loadUiType(), though haven't tried it. My UI classes look
> something like:
>
> # ...
> from PySide2 import QtCore, QtGui, QtWidgets
> from PySide2.QtUiTools import loadUiType
> # ...
>
> class DataPanel(QtWidgets.QWidget, loadUiType(__file__.split(".py")[0] +
> ".ui")[0]):
>
>     def __init__(self, parent=None):
>         super().__init__(parent)
>         self.setupUi(self)
>         # ...
>
> # ...
>
> The .ui file is created as normal (named the same as the python file but
> with .ui extension), with the GraphicsLayoutWidget extended from
> QGraphicsView as described in the pyqtgraph documentation. The relevant
> section in the .ui XML then looks like:
>
>  <customwidgets>
>   <customwidget>
>    <class>GraphicsLayoutWidget</class>
>    <extends>QGraphicsView</extends>
>    <header>mypackage.pyqtgraph</header>
>   </customwidget>
>  </customwidgets>
>
> where "mypackage" is my application package name, and I have pyqtgraph in
> a directory under it as a subpackage. If you are using a system
> installation of pyqtgraph, then the header field should just be "pyqtgraph".
>
> Hopefully that might give you some ideas anyway.
>
> Patrick
>
>
>
> On Saturday, 30 January 2021 at 11:13:33 am UTC+10:30 [email protected]
> wrote:
>
>> As a follow-up, I'm using registerCustomWidget for the promoted widgets:
>>
>> loader = QUiLoader()
>> loader.registerCustomWidget(pg.GraphicsLayoutWidget)
>> loader.registerCustomWidget(pg.widgets.TreeWidget)
>> loader.registerCustomWidget(pg.parametertree.ParameterTree)
>>
>>
>> ----
>> Tim Williams
>>
>>
>> On Fri, Jan 29, 2021 at 7:29 PM [email protected] <[email protected]>
>> wrote:
>>
>>> HI,
>>>
>>> (Sorry about the formatting - not used to google groups posting.)
>>>
>>> I have an application I'm trying to get working with PySide2. I made
>>> changes following the example designerExample.py .
>>> <https://github.com/pyqtgraph/pyqtgraph/blob/master/examples/designerExample.py>
>>> Everything seems to work fine with PyQt5, but when I try to use PySide
>>> everytime I try to do a ParameterTree.setParmeters() I get an error like
>>> this:
>>>
>>>   File
>>> "C:\Users\Tim\pyside2_env\lib\site-packages\pyqtgraph\parametertree\ParameterTree.py",
>>> line 48, in setParameters
>>>     self.clear()
>>>   File
>>> "C:\Users\Tim\pyside2_env\lib\site-packages\pyqtgraph\parametertree\ParameterTree.py",
>>> line 85, in clear
>>>     self.invisibleRootItem().takeChildren()
>>>   File
>>> "C:\Users\Tim\pyside2_env\lib\site-packages\pyqtgraph\widgets\TreeWidget.py",
>>> line 390, in takeChildren
>>>     childs = self._real_item.takeChildren()
>>> RuntimeError: Internal C++ object (PySide2.QtWidgets.QTreeWidgetItem)
>>> already deleted.
>>>
>>> I'm using PySide2.QUiTools.QuiLoader().load to load my UI file for
>>> PySide2, and
>>> uic.loadUI for PyQt5.
>>>
>>> with importlib.resources.path('nvfieldcap.resources.ui',
>>> 'paramtreeDialog.ui') as uifilename:
>>> if 'PySide2' in sys.modules:
>>> self.dialog = loader.load(uifilename.as_posix())
>>> if 'PyQt5' in sys.modules:
>>> self.dialog = QtWidgets.QDialog()
>>> uic.loadUi(uifilename.as_posix(), self.dialog)
>>>
>>> --
>>> You received this message because you are subscribed to a topic in the
>>> Google Groups "pyqtgraph" group.
>>> To unsubscribe from this topic, visit
>>> https://groups.google.com/d/topic/pyqtgraph/uv2uyQCu9MM/unsubscribe.
>>> To unsubscribe from this group and all its topics, send an email to
>>> [email protected].
>>> To view this discussion on the web visit
>>> https://groups.google.com/d/msgid/pyqtgraph/f04abdf3-068a-41c4-a993-6076713ca61an%40googlegroups.com
>>> <https://groups.google.com/d/msgid/pyqtgraph/f04abdf3-068a-41c4-a993-6076713ca61an%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>> --
> You received this message because you are subscribed to a topic in the
> Google Groups "pyqtgraph" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/pyqtgraph/uv2uyQCu9MM/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/pyqtgraph/106f2150-1724-4402-8e29-bd3cd30bd0fbn%40googlegroups.com
> <https://groups.google.com/d/msgid/pyqtgraph/106f2150-1724-4402-8e29-bd3cd30bd0fbn%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
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/CAO39LaTbFJ5H6Tf%3D4BDRVyEKKxFF%2B-9hWM0qmQSkuEz_7-_%3DgA%40mail.gmail.com.

Reply via email to