Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Requests #24

Open
ColourManiac opened this issue Jul 31, 2024 · 19 comments
Open

Requests #24

ColourManiac opened this issue Jul 31, 2024 · 19 comments
Labels
enhancement New feature or request

Comments

@ColourManiac
Copy link

ColourManiac commented Jul 31, 2024

Just a few feature requests if possible?

  • 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.

  • 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.

  • Would it be possible to implement a layer organizing feature, so you can send widgets to back/front if they're stacked? I moved a frame to another page and then moved it back again and when I moved it back it was on top, hiding all the other widgets.
    I know of the 'fix above' feature but this only sends to front and also duplicates to other pages.

  • Would be great to be able to set a page's width and height independently and not be tied to a global window size.

  • The ability to name pages would also be a handy feature.

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

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

@Akascape Akascape added the enhancement New feature or request label Aug 1, 2024
@ColourManiac
Copy link
Author

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
Copy link
Owner

Akascape commented Aug 1, 2024

@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
Copy link
Author

Fantastic! Thanks👌

@ColourManiac
Copy link
Author

Just another potential issue:

  • 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.

@Akascape
Copy link
Owner

Akascape commented Aug 3, 2024

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

@ColourManiac
Copy link
Author

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
Copy link
Owner

Akascape commented Aug 8, 2024

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

@ColourManiac
Copy link
Author

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

@ColourManiac
Copy link
Author

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

@Akascape
Copy link
Owner

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

@ColourManiac
Copy link
Author

Fantastic thanks, looking forward to it! 😀

@Akascape
Copy link
Owner

Akascape commented Aug 11, 2024

@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: #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
Copy link
Author

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
Copy link
Owner

@ColourManiac Ok, I will fix the grid soon.

@machobymb1
Copy link

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

@Akascape
Copy link
Owner

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

@ColourManiac
Copy link
Author

@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
Copy link
Owner

@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
Copy link
Author

Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants