# qt.QFormBuilder?

**URL:** <https://discourse.slicer.org/t/qt-qformbuilder/7551>\
**Category:** Development\
**Created:** [July 12, 2019, 3:30pm UTC](https://discourse.slicer.org/t/qt-qformbuilder/7551 "2019-07-12T15:30:25Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![adamrankin](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/adamrankin/32/155_2.png) [@adamrankin](https://discourse.slicer.org/u/adamrankin)\
**Post date:** [July 12, 2019, 3:30pm UTC](https://discourse.slicer.org/t/qt-qformbuilder/7551/1 "2019-07-12T15:30:25Z")

</div>

Hello all,

Before I begin digging, does anyone know why this class may not be available in python?

Adam

---

<div class="post-metadata">

**Author:** ![jcfr](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/jcfr/32/17825_2.png) [@jcfr](https://discourse.slicer.org/u/jcfr)\
**Post date:** [July 12, 2019, 3:35pm UTC](https://discourse.slicer.org/t/qt-qformbuilder/7551/2 "2019-07-12T15:35:32Z")

</div>

This rely on [PythonQt](https://mevislab.github.io/pythonqt/) to make the Qt classes available in Python and it looks like [this class is not wrapped](https://github.com/commontk/PythonQt/search?utf8=%E2%9C%93&q=QFormBuilder&type=).

---

<div class="post-metadata">

**Author:** ![lassoan](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/lassoan/32/13_2.png) [@lassoan](https://discourse.slicer.org/u/lassoan)\
**Post date:** [July 12, 2019, 4:17pm UTC](https://discourse.slicer.org/t/qt-qformbuilder/7551/3 "2019-07-12T16:17:45Z")

</div>

We use qt.QUiLoader() instead. See how it is used in [slicer.util.loadUI](https://github.com/Slicer/Slicer/blob/master/Base/Python/slicer/util.py#L269).

But it gets even better! Since Slicer-4.10.2 we have made it very easy to edit module GUI using Qt designer (launch designer from the module GUI, reload the GUI without restarting Slicer, template in ExtensionWizard, …). See [Scripting and module development tutorial](https://github.com/PerkLab/PerkLabBootcamp/blob/master/Doc/day3_2_SlicerProgramming.pptx?raw=true) (from slide 33).

---

<div class="post-metadata">

**Author:** ![adamrankin](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/adamrankin/32/155_2.png) [@adamrankin](https://discourse.slicer.org/u/adamrankin)\
**Post date:** [July 12, 2019, 7:07pm UTC](https://discourse.slicer.org/t/qt-qformbuilder/7551/4 "2019-07-12T19:07:10Z")

</div>

I’m familiar with loadUI. The desired functionality from QFormBuilder is the save function to write a dynamically created widget to a .ui file.

---

<div class="post-metadata">

**Author:** ![lassoan](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/lassoan/32/13_2.png) [@lassoan](https://discourse.slicer.org/u/lassoan)\
**Post date:** [July 12, 2019, 7:10pm UTC](https://discourse.slicer.org/t/qt-qformbuilder/7551/5 "2019-07-12T19:10:16Z")

</div>

What is the use case? I’m just curious.

---

<div class="post-metadata">

**Author:** ![adamrankin](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/adamrankin/32/155_2.png) [@adamrankin](https://discourse.slicer.org/u/adamrankin)\
**Post date:** [July 12, 2019, 7:22pm UTC](https://discourse.slicer.org/t/qt-qformbuilder/7551/6 "2019-07-12T19:22:16Z")

</div>

Not sure, just got asked if the class was available.

---

<div class="post-metadata">

**Author:** ![jcfr](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/jcfr/32/17825_2.png) [@jcfr](https://discourse.slicer.org/u/jcfr)\
**Post date:** [July 12, 2019, 8:20pm UTC](https://discourse.slicer.org/t/qt-qformbuilder/7551/7 "2019-07-12T20:20:18Z")

</div>

If needed, you could either improve the PythonQt wrapping … or create a SlicerFormBuilder class to expose the feature to python.
