Akascape / CTkTable

Customtkinter Table widget (extension/add-on)
MIT License
265 stars 15 forks source link

How to use CTkXYFrame with CTkTable #57

Closed sunny9495-dev closed 9 months ago

sunny9495-dev commented 10 months ago

Here is the script iam trying.

import customtkinter
from customtkinter import *
from CTkTable import *
import multiprocessing
import tkinter as ttk
from CTkXYFrame import *

class GuiApp(object):
    def __init__(self, q):
        customtkinter.set_appearance_mode("System")
        customtkinter.set_default_color_theme("blue")
        self.root = customtkinter.CTk()
        self.excelentrylbl = customtkinter.CTkLabel(master=self.root, text="Excel File")
        self.excelentrylbl.place(x=20, y=20)
        self.excelentry = CTkEntry(master=self.root, width=250)
        self.excelentry.place(x=20, y=50)
        self.excelbtn = CTkButton(master=self.root, text="Browse", width=15, border_spacing=5)
        self.excelbtn.place(x=250, y=50)
        self.saveentrylbl = CTkLabel(master=self.root, text="Save to")
        self.saveentrylbl.place(x=400, y=20)
        self.savetoentry = CTkEntry(master=self.root, width=250)
        self.savetoentry.place(x=400, y=50)
        self.savetobtn = CTkButton(master=self.root, text="Browse", width=15, border_spacing=5)
        self.savetobtn.place(x=630, y=50)
        self.startbtn = CTkButton(master=self.root, text="Start", width=20)
        self.startbtn.place(x=300, y=100)
        value = [[1,2,3,4,5, 6],
                 [1,2,3,4,5, 6],
                 [1,2,3,4,5, 6],
                 [1,2,3,4,5, 6],
                 [5,6,7,8,9, 6],
                 [1,2,3,4,5, 6],
                 [1,2,3,4,5, 6],
                 [1,2,3,4,5, 6],
                 [1,2,3,4,5, 6],
                 [1,2,3,4,5, 6],
                 [1,2,3,4,5, 6],
                 [1,2,3,4,5, 6],
                 [1,2,3,4,5, 6],
                 [1,2,3,4,5, 6],
                 [1,2,3,4,5, 6]]
        self.Frame = customtkinter.CTkFrame(master=self.root, width=769, height=289, bg_color="#FF0000")
        self.Frame.place(x=15, y=140)
        self.xyframe = CTkXYFrame(master=self.Frame)
        self.xyframe.pack(fill="both", expand=True)
        self.table = CTkTable(master=self.xyframe, row=10, column=6, values=value)
        self.table.insert(0, 0, 'Email', anchor='CENTER')
        self.table.insert(0, 1, 'Password', anchor='CENTER')
        self.table.insert(0, 2, 'Recovery Email/Phone', anchor='CENTER')
        self.table.insert(0, 3, 'Proxy', anchor='CENTER')
        self.table.insert(0, 4, 'Review URL', anchor='CENTER')
        self.table.insert(0, 5, 'Star Rating', anchor='CENTER')
        # self.table.edit_column(3, width=1)
        self.table.pack()

        self.root.geometry("800x450")
# # Use CTkButton instead of tkinter Button
# button = customtkinter.CTkButton(master=root, text="CTkButton")
# button.place(relx=0.5, rely=0.5, anchor=customtkinter.CENTER)

if __name__ == '__main__':
    m = multiprocessing.Manager()
    q = m.Queue()
    gui = GuiApp(q)
    gui.root.mainloop()

But the following table appears not as expected.

@Akascape can you guide me in right direction.

Akascape commented 10 months ago

@sunny9495-dev Did you try this example: https://github.com/Akascape/CTkXYFrame/blob/main/example_2.py

sunny9495-dev commented 10 months ago

@Akascape

Thank you for quick response.

Yes, I have tried and it works perfectly fine, But when I applied it in my environment, it was appearing as show in this Image.

https://i.imgur.com/yA42Afq.png

Akascape commented 9 months ago

@sunny9495-dev It was an issue of ctkxyframe. Update the version