Работа с окнами в tkinter (Python)
Я сделала скрипты которые работают с бд, но их ещё нужно засунуть в приложение, эта программа это только оболочка, наполнением я займусь сама. Так, вот оно.
(Это самое первое окно при открытии, тут нужно просто нажать input что бы открыть вторую часть)
(далее нужно открыть несколько окон (несколько раз нажать input))

После (нужно выбрать ADD или Delete на переключателе)
Но из-за того что я написала "window = Toplevel()" программа принимает только параметры переключателя только верхнего окна, не зависимо от того что выбрано в остальных окнах.(правое окно верхнее(то есть я его вызвала последним))
. Как сделать что бы окна были независимы друг от друга (что бы при нажатии на кнопку выводились те параметры которые выбраны на этом окне)
""" from tkinter import * from tkinter import ttk from tkinter import messagebox from tkinter.ttk import Radiobutton import cx_Oracle import csv
def clicked2(): # второе окно для
user = User.get()
pwd = Pwd.get()
ip = Ip.get()
port = Port.get()
SID = sid.get()
window = Toplevel(window)
window.title("удаление или добавление ")
window.geometry('400x250')
global selected
selected = IntVar() # переключатели для добавления или удаления
rad1 = Radiobutton(window, text='Add role', value=1, variable=selected)
rad2 = Radiobutton(window, text='Delete role', value=2, variable=selected)
rad3 = Radiobutton(window, text='viewing', value=3, variable=selected)
rad1.grid(column=0, row=0)
rad2.grid(column=1, row=0)
rad3.grid(column=2, row=0)
lbl = Label(window, text="name") #строка для ввода имени
lbl.grid(column=0, row=1)
global Name
Name = Entry(window, width=20)
Name.grid(column=1, row=1)
def add_or_delete(): # третья ступень
selection = selected.get()
name = Name.get()
role = Role.get()
#cursor = conn.cursor()
if selection == 1: # ADD
print("ADD")
elif selection == 2: #DELETE
print("Delete")
def clicked(): # кнопка принимающая введённые данные подключающаяся к бд (второе окно )
user = User.get()
pwd = Pwd.get()
ip = Ip.get()
port = Port.get()
SID = sid.get()
# try:
global conn
#conn = cx_Oracle.connect(user, pwd, cx_Oracle.makedsn(ip, port, None, SID)) ##################подключение к бд
# with conn:
print("всё хрш")
#messagebox.showinfo(' ', 'всё хрш')
################################################# новое окно с удалением или добавлением
window = Toplevel()
window.title("удаление или добавление ")
window.geometry('400x250')
global selected
selected = IntVar() # переключатели для добавления или удаления
rad1 = Radiobutton(window, text='Add', value=1, variable=selected)
rad2 = Radiobutton(window, text='Delete', value=2, variable=selected)
rad1.grid(column=0, row=0)
rad2.grid(column=1, row=0)
lbl = Label(window, text="name") #строка для ввода имени
lbl.grid(column=0, row=1)
global Name
Name = Entry(window, width=20)
Name.grid(column=1, row=1)
lbl = Label(window, text="role") #строка для ввода роли
lbl.grid(column=0, row=2)
global Role
Role = Entry(window, width=20)
Role.grid(column=1, row=2)
btn = Button(window, text="НАЖАТЬ", command=add_or_delete) #кнопка окей
btn.grid(column=0, row=3)
window.mainloop()
# except cx_Oracle.DatabaseError:
# print('не всё')
window = Tk()
window.title("Добро пожаловать в приложение PythonRu")
window.geometry('600x250')
tab_control = ttk.Notebook(window)
tab1 = ttk.Frame(tab_control)
tab2 = ttk.Frame(tab_control)
tab_control.add(tab1, text='назначить роли пользаку')
tab_control.add(tab2, text='форматирование доступных ролей')
lbl = Label(tab1, text="User")
lbl.grid(column=0, row=0)
User = Entry(tab1,width=20)
User.grid(column=1, row=0)
lbl = Label(tab1, text="pwd")
lbl.grid(column=0, row=1)
Pwd = Entry(tab1,width=20)
Pwd.grid(column=1, row=1)
lbl = Label(tab1, text="ip")
lbl.grid(column=0, row=2)
Ip = Entry(tab1,width=20)
Ip.grid(column=1, row=2)
lbl = Label(tab1, text="port")
lbl.grid(column=0, row=3)
Port = Entry(tab1,width=20)
Port.grid(column=1, row=3)
lbl = Label(tab1, text="SID")
lbl.grid(column=0, row=4)
sid = Entry(tab1,width=20)
sid.grid(column=1, row=4)
btn = Button(tab1, text="input", command=clicked)
btn.grid(column=1, row=5)
tab_control.pack(expand=1, fill='both')
#####
lbl = Label(tab2, text="User")
lbl.grid(column=0, row=0)
User = Entry(tab2,width=20)
User.grid(column=1, row=0)
lbl = Label(tab2, text="pwd")
lbl.grid(column=0, row=1)
Pwd = Entry(tab2,width=20)
Pwd.grid(column=1, row=1)
lbl = Label(tab2, text="ip")
lbl.grid(column=0, row=2)
Ip = Entry(tab2,width=20)
Ip.grid(column=1, row=2)
lbl = Label(tab2, text="port")
lbl.grid(column=0, row=3)
Port = Entry(tab2,width=20)
Port.grid(column=1, row=3)
lbl = Label(tab2, text="SID")
lbl.grid(column=0, row=4)
sid = Entry(tab2,width=20)
sid.grid(column=1, row=4)
btn = Button(tab2, text="input", command=clicked2)
btn.grid(column=1, row=5)
window.mainloop()
"""