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

Resize sheet when user resize window #11

Closed
longk15t opened this issue Mar 4, 2020 · 2 comments
Closed

Resize sheet when user resize window #11

longk15t opened this issue Mar 4, 2020 · 2 comments

Comments

@longk15t
Copy link

longk15t commented Mar 4, 2020

Hello @ragardner, have a good day.

I have a question, can we resize the sheet widget when I resize the main window so I can see horizontal + vertical scrollbar of the sheet ?

Currently, this is what I get when I downsize the main window
Screenshot 2020-03-04 at 1 16 39 PM

Thanks and best regards,
longk15t

@ragardner
Copy link
Owner

ragardner commented Mar 4, 2020

I think there are a few possible solutions, I'll start with the easiest

If you have put the Sheet() inside a frame using .grid() then you can try the code:

self.my_frame_name.grid_columnconfigure(<integer column that the Sheet() was put in>, weight = 1)
self.my_frame_name.grid_rowconfigure(<integer row that the Sheet() was put in>, weight = 1)

and don't forget to use sticky = when you use .grid()

Or if you used .pack() then you can try messing about with fill and expand as shown in this question:
https://stackoverflow.com/questions/28089942/difference-between-fill-and-expand-options-for-tkinter-pack-method

Try the above methods on other parent container frames as well and if you have set a specific width and height for the Sheet() you could try not doing that combined with the code above

I have also written some example code based on your image that might help, it seems to do what you want and might highlight what you need to change, but I'm not 100% sure it's applicable, give it a try:

from tksheet import Sheet
import tkinter as tk

app = tk.Tk()
app.grid_columnconfigure(0, weight = 1)
app.grid_rowconfigure(0, weight = 1)

main_frame = tk.Frame(app)
main_frame.grid(row = 0, column = 0, sticky = "nsew", padx = 10, pady = 10)

entry = tk.Entry(main_frame)
entry.grid(row = 0, column = 0, sticky = "ew", padx = 10, pady = 10)

main_frame.grid_columnconfigure(0, weight = 1)
main_frame.grid_rowconfigure(1, weight = 1)

sheet = Sheet(main_frame,
              total_rows = 1200,
              total_columns = 30)
sheet.grid(row = 1, column = 0, sticky = "nswe", padx = 10, pady = 10)
app.mainloop()

If these don't work or are not applicable let me know and I could get into .bind("<Configure>", ... stuff or alternatively if you pasted just the UI code I might be able to fix it

@longk15t
Copy link
Author

longk15t commented Mar 4, 2020

@ragardner your are savior, that worked !

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

No branches or pull requests

2 participants