Я делаю программу, которая получает записи базы данных с помощью модуля PyMySQL, а затем я хочу отобразить эти записи в записях Tkinter. У меня уже есть код для этого, но я хочу добавить функциональность.
Я хочу дать пользователю функциональность для двойной щелчок на элементе Entry строки и получить весь текст Entry для этой строки и проанализировать их в текстовые поля, которые я объявил до цикла For (UserID, First_Name и т. Д. ).
Скажем, у меня есть 5 записей в строке. Если пользователь дважды щелкнет на (например) записи № 2 строки 1, я хочу получить текст из всех записей строки 1 и проанализировать их в текстовых полях соответственно.
Это код, который у меня сейчас есть:
window = tk.Tk()
window.title("Flexbase") #Give window a name
window.update_idletasks()
width = 640
height = 480
x = (window.winfo_screenwidth() // 2) - (width // 2)
y = (window.winfo_screenheight() // 2) - (height // 2)
window.geometry('+{}+{}'.format(x, y))
GetRows_StringVariable = "SELECT * FROM SEC_USER"
cursor.execute(GetRows_StringVariable)
results = cursor.fetchall()
RowCounter = 1
ColumnCounter = -1
ListCounter = 0
RowListCounter = 0
rows = []
id_list = []
firstname_list = []
surname_list = []
username_list = []
email_list = []
password_list = []
tk.Label(window, text="Testing").grid(row=0, column=0, sticky=NSEW)
UserID_TextBox = tk.Entry(window, width=20, bg="white") #Create text box
UserID_TextBox.grid(row=1, column=0, sticky=W) #Give the text box a position in the window
FirstName_TextBox = tk.Entry(window, width=60, bg="white")
FirstName_TextBox.grid(row=2, column=0, sticky=W)
Surname_TextBox = tk.Entry(window, width=60, bg="white")
Surname_TextBox.grid(row=3, column=0, sticky=W)
Email_TextBox = tk.Entry(window, width=60, bg="white")
Email_TextBox.grid(row=4, column=0, sticky=W)
Username_TextBox = tk.Entry(window, width=20, bg="white")
Username_TextBox.grid(row=5, column=0, sticky=W)
Password_TextBox = tk.Entry(window, show="*", width=20, bg="white")
Password_TextBox.grid(row=6, column=0, sticky=W)
notebook = ttk.Notebook(window)
notebook.grid(row=7, column=0, sticky=NSEW)
page1 = ttk.Frame(notebook)
notebook.add(page1, text="Mass Editing Mode")
tk.Label(page1, text=SQL_ID, fg="black", font="Arial 8 bold").grid(row=0, column=0, sticky=W)
tk.Label(page1, text=SQL_FIRSTNAME, fg="black", font="Arial 8 bold").grid(row=0, column=1, sticky=W)
tk.Label(page1, text=SQL_SURNAME, fg="black", font="Arial 8 bold").grid(row=0, column=2, sticky=W)
tk.Label(page1, text=SQL_USERNAME, fg="black", font="Arial 8 bold").grid(row=0, column=3, sticky=W)
tk.Label(page1, text=SQL_EMAIL, fg="black", font="Arial 8 bold").grid(row=0, column=4, sticky=W)
for row in results: # Page 1 TAB
ColumnCounter += 1
id_list.append(row[SQL_ID])
a = tk.Entry(page1, fg="black", font="Arial 8 bold")
a.grid(row=RowCounter, column=ColumnCounter, sticky=W)
a.insert(0, row[SQL_ID])
ColumnCounter += 1
firstname_list.append(row[SQL_FIRSTNAME])
b = tk.Entry(page1, fg="black", font="Arial 8 bold")
b.grid(row=RowCounter,column=ColumnCounter,sticky=W)
b.insert(0, row[SQL_FIRSTNAME])
ColumnCounter += 1
surname_list.append(row[SQL_SURNAME])
c = tk.Entry(page1, fg="black", font="Arial 8 bold")
c.grid(row=RowCounter,column=ColumnCounter,sticky=W)
c.insert(0, row[SQL_SURNAME])
ColumnCounter += 1
username_list.append(row[SQL_USERNAME])
d = tk.Entry(page1, fg="black", font="Arial 8 bold")
d.grid(row=RowCounter, column=ColumnCounter, sticky=W)
d.insert(0, row[SQL_USERNAME])
ColumnCounter += 1
email_list.append(row[SQL_EMAIL])
e = tk.Entry(page1, fg="black", font="Arial 8 bold")
e.grid(row=RowCounter, column=ColumnCounter, sticky=W)
e.insert(0, row[SQL_EMAIL])
RowCounter += 1
ColumnCounter = -1
ListCounter += 1
RowListCounter += 1
Этот код создает окно с 5 записями на строку.