Задать вопрос
Ответы пользователя по тегу Tkinter
  • Tkinter. Как растянуть Form на весь Canvas?

    rqdkmndh
    @rqdkmndh
    Web-разработчик
    import customtkinter as ctk
    
    app = ctk.CTk()
    
    def resize_frame(event):
        # Растягиваем frame на всю площадь canvas
        canvas.itemconfig(frame_id, width=event.width-2*padx)
    
    # Ширина и высота отступов
    padx =20
    pady = 20
    
    # Canvas
    canvas = ctk.CTkCanvas(app, bg="blue", highlightthickness=0)
    canvas.pack(fill='both', expand=True, padx=padx, pady=pady)
    
    # Функция привязки изменения размера Canvas
    canvas.bind('<Configure>', resize_frame)
    
    main_frame = ctk.CTkFrame(app, bg_color='white')
    frame_id = canvas.create_window((20, 20), window=main_frame, anchor='nw')
    
    scrollbar = ctk.CTkScrollbar(app, command=canvas.yview)
    canvas.configure(yscrollcommand=scrollbar.set)
    scrollbar.place(relx=1, rely=0, relheight=1, anchor='ne')
    # наполнение
    for i in range(40):
        ctk.CTkButton(main_frame, text='Click Me').pack(pady=10)
    
    canvas.update_idletasks()
    canvas.configure(scrollregion=canvas.bbox("all"))
    app.mainloop()
    Ответ написан
    Комментировать