Akascape / CTkDesigner-Support

Support page for CTkDesigner - GUI design app for customtkinter
https://ko-fi.com/s/6fca1ae70f
Other
90 stars 0 forks source link

Requests #24

Open ColourManiac opened 3 months ago

ColourManiac commented 3 months ago

Just a few feature requests if possible?

ColourManiac commented 3 months ago

Forgot to ask, if there was also a way to improve the feathering of the corner radius when using the draw widget to add an image? Really useful feature, but can get a bit rough looking with images.

Akascape commented 3 months ago

@ColourManiac Ok, thanks for this suggestion. I will try to add the feathering option in next update. I am currently working on the undo feature, which is a little complex so it may take some time for me to properly implement that. I have fixed the move to top duplicate bug; I will add the grid snaplines feature for reference purpose. Then I will move to more features.

ColourManiac commented 3 months ago

Fantastic! Thanks👌

ColourManiac commented 3 months ago

Just another potential issue:

Akascape commented 3 months ago

@ColourManiac Ok, I will add a new option to change the position of the properties window automatically.

ColourManiac commented 3 months ago

It seems when previewing the GUI or when viewing the GUI after exporting .py, 'Draw' widgets don't keep their x/y position exactly? Did not notice initially when on single display but when viewing GUI on dual display with extended display it occurs?

Akascape commented 3 months ago

@ColourManiac In the export menu, try tweaking the dpi awareness checkbox. Then preview it.

ColourManiac commented 3 months ago

My bad, that fixed it. Just thought it was odd that it was only with draw widgets. Thanks!

ColourManiac commented 3 months ago

Could you add 'Orientation' argument to the scrollable frame widget in its properties?

Akascape commented 3 months ago

@ColourManiac Ok I will try to add this one too, version 7.0 is almost ready with many new features and bug fixes.

ColourManiac commented 3 months ago

Fantastic thanks, looking forward to it! 😀

Akascape commented 3 months ago

@ColourManiac Implemented these in version 7:

Can you implement an undo/redo button with corresponding short cuts keys? This would be super handy for when mistakenly moving a widget and for peace of mind knowing mistakes can be undone.

Added Ctrl+z for deleted widgets and placement reversal

Being able to copy and paste widgets would be handy, so you could copy a widget, move to a different page and paste/duplicate the widget.

Added Ctrl+C and Ctrl+V to copy and paste widgets

A grid overlay that could be enabled/disabled would be very handy for alignment.

Added a grid overlay, use Ctrl+Q to enable it, press + and - button to adjust the cells image

Not sure if its supposed to happen or not, but 'move to top' also duplicates the widget?

Fixed this issue

Could you add 'Orientation' argument to the scrollable frame widget in its properties?

Added orientation in parameter window

Is the properties window always relative to the working window? Or is there an option to change this? Not sure if it's just me but if I set the working window to take up most of the screen, the properties panel appears off screen and is not draggable/moveable, essentially making altering widget properties impossible.

Now there is an option to fix the window in the right side, (with transparency enabled)

Forgot to ask, if there was also a way to improve the feathering of the corner radius when using the draw widget to add an image? Really useful feature, but can get a bit rough looking with images.

Added the corner_softness parameter in CTkDraw, for feathering effect.


Full changelog: https://github.com/Akascape/CTkDesigner-Support/discussions/26 Thanks again for the feedback, it significantly contributed to enhancing the software. In the next update I will try to add widget layer and dynamic window size support.

ColourManiac commented 3 months ago

Thanks! Just played around with it there and everything seems to work great! I did notice however that the grid only works on a new project, but if you save and then load a project and try use the grid, the grid does not appear

Akascape commented 3 months ago

@ColourManiac Ok, I will fix the grid soon.

machobymb1 commented 3 months ago

I'd like, that the day characters in calendar modified, when I change the locale.

Akascape commented 3 months ago

@machobymb1 can you please explain what you want to modify in the calendar widget?

ColourManiac commented 3 months ago

@ColourManiac Ok, I will fix the grid soon.

Thank you. Would you also possibly be able to improve the table widget? By having rows/columns selectable and then having the selected row/column highlighted with an argument such as 'SelectedColour' and 'SelectedFont' or even just the same colour as hover colour?

Akascape commented 3 months ago

@ColourManiac

I did notice however that the grid only works on a new project, but if you save and then load a project and try use the grid, the grid does not appear

Grid issue is solved in version 7.1, uploaded in the download page.

Thank you. Would you also possibly be able to improve the table widget? By having rows/columns selectable and then having the selected row/column highlighted with an argument such as 'SelectedColour' and 'SelectedFont' or even just the same colour as hover colour?

We have this ability to select table rows or columns, but we have to implement this manually through code which is very easy to understand, here is the example:

# row select example for ctktable

import customtkinter
from CTkTable import *

root = customtkinter.CTk()

row_nums = []
row_values = []

def show(cell):
    if cell["row"]==0:
        return # don't change header
    if cell["row"] not in row_nums:
        table.edit_row(cell["row"], fg_color=table.hover_color)
        row_nums.append(cell["row"])
        row_values.append(table.get()[cell["row"]])
    else:
        table.edit_row(cell["row"], fg_color=table.fg_color if cell["row"]%2==0 else table.fg_color2)
        row_nums.remove(cell["row"])
        row_values.remove(table.get()[cell["row"]])
    print(row_values)

value = [["A","B","C","D","E"],[1,2,3,4,5],[5,6,7,8,9],[0,0,0,0,0],[1,2,3,4,5]]

table = CTkTable(master=root, row=5, column=5, values=value, command=show, header_color="green")
table.pack(expand=True, fill="both", padx=20, pady=20)

root.mainloop()
ColourManiac commented 3 months ago

Thank you!