alejandroautalan / pygubu-designer

A simple GUI designer for the python tkinter module
GNU General Public License v3.0
838 stars 102 forks source link

Feature-Requests #174

Open SiL3NC3 opened 1 year ago

SiL3NC3 commented 1 year ago

btw, pygubu-designer ROCKZ! 👍

Keep the collapsed states of the treeview hierarchy

The collapsing states are not persistent, what they should be, or at least it can be turned on/off via an option. This is worth one "collapsed" attribute in the data xml structure and would be so helpful. ;) Right now, the full tree is entirely unfold on every repaint of the preview. With large trees, this is really a bit annoying.

Additional menu entries for

Fold/Unfold children elements for selected element in treeview. A really good solution would be to integrate a function for toggling the collapsed state (for all child elements) when holding shift-key while left mouse clicking on a treeview element.

Element ordering

Enable dragging for repositioning the elements in the treeview.

Designer binding for testing runtime

It would be also handy (if not still implemented) to can open other windows (toplevel widgets) via a button click, during the testing runtime. Optionally as new instance or a dialog which is block the access to the main window.

ScrollbarHelper

ScrollbarHelper should support adding a frame as a child element. Which is sadly not possible right now.

Thank you, folkz.

alejandroautalan commented 1 year ago

Hello @SiL3NC3 thanks for your comments.

Keep the collapsed states of the treeview hierarchy

The collapsing states are not persistent, what they should be, or at least it can be turned on/off via an option. This is worth one "collapsed" attribute in the data xml structure and would be so helpful. ;) Right now, the full tree is entirely unfold on every repaint of the preview. With large trees, this is really a bit annoying.

Additional menu entries for

Fold/Unfold children elements for selected element in treeview. A really good solution would be to integrate a function for toggling the collapsed state (for all child elements) when holding shift-key while left mouse clicking on a treeview element.

I agree with this two points. I will try to improve usage in this area.

Element ordering

Enable dragging for repositioning the elements in the treeview.

You can use keyboard shortcuts to move widgets in the tree and in the grid if you are using grid manager. Implement dragging with the mouse can be complicated in tkinter. Maybe in the near future I will implement it.

Designer binding for testing runtime

It would be also handy (if not still implemented) to can open other windows (toplevel widgets) via a button click, during the testing runtime. Optionally as new instance or a dialog which is block the access to the main window.

I think you want to write code in the designer. I don't want this because user code errors are hard to process. Maybe if I put more effort to complete this area #99, testing the UI will improve.

ScrollbarHelper

ScrollbarHelper should support adding a frame as a child element. Which is sadly not possible right now.

ScrollbarHelper is used to add scrollbars to widgets that support the options xscrollcommand and yscrollcomand such as Treeview, Entry, Listbox, Canvas. For scrolling frames you can use pygubu ScrolledFrame widget or another scrollable frame implementation.

Regards Alejandro A.

SiL3NC3 commented 1 year ago

For code generation:

Give checkbox options to extract widgets and containing sub-widgets as a new python classes by class-name, if selected.

Like for example:

Every widget (with sub-widgets) should stay in it's own class. And to construct the form use the generated widget-collection-classes.

Would be more convenient for later tweaks in the code, when designer is not used anymore.

SiL3NC3 commented 1 year ago

Support for CustomTkinter

alejandroautalan commented 1 year ago

Hello,

Support for CustomTkinter

Since version 0.27 pygubu started support for customtkinter (with some glitches). The last version (pygubu 0.29) supports customtkinter up to version 4.6.

Customtkinter v5 internals changed a lot so I had to rewrite the plugin (alejandroautalan/pygubu-designer#172)

You can test the new implementation installing pygubu and pygubu-designer from the master branch. I need to fix some preview glitches but is working ok.

pip install git+https://github.com/alejandroautalan/pygubu
pip install git+https://github.com/alejandroautalan/pygubu-designer
pip install customtkinter

Let me know.

Regards.

SiL3NC3 commented 1 year ago

you are kicking ass! thx, bro.

SiL3NC3 commented 1 year ago

Can you add an option to set "takefocus" to "false" for all new items by default via settings? ;)

SiL3NC3 commented 1 year ago

In tab Code for code generation please keep the selection for MainWidget during tab change. It is always being reset to the first entry on changing between Design and Code tab.

image