Python tkinter (Notebook)

sk1nnys

Новичок
Пользователь
Июн 19, 2023
3
0
1
Доброго времени суток. Пытаюсь воссоздать некую программу на базе Python + tkinter, сделал виджет (Notebook), создал нужно количество вкладок, но появились проблемы с дальнейшей реализацией проекта:
1) Я не понимаю, как сюда (Изображение №1) вписать нужный мне текст, и чтобы он сохранился после закрытия приложения;
2) Как мне сделать переход по кнопке в другое приложение (Изображение №2), т.е., пользовать, запускает программу, появляется некая информация про приложение, нажимает кнопку, и переходит на другой виджет (Notebook - где уже всё прописано, как писал в пункте №1). ((Если дословно - переход между скриптами, у меня не получается)
3) Как сделать удобный поисковик слов по всем вкладкам Notebook?

Изображение №1 - https://i.yapx.ru/WR4uz.png ,​
from tkinter import *
from tkinter import ttk
window = Tk()
window.title("State assiastant") #Наименование программы (сверху)
window.geometry(f'500x300+500+400') #Размер окна (основного)
tab_control = ttk.Notebook(window)
menu = Menu(window)
new_item = Menu(menu, tearoff=0)
new_item.add_command(label='Новый')
new_item.add_separator()
new_item.add_command(label='Разработчик')
menu.add_cascade(label='Помощь', menu=new_item)
window.config(menu=menu)
tab1 = ttk.Frame(tab_control)
tab2 = ttk.Frame(tab_control)
tab3 = ttk.Frame(tab_control)
tab4 = ttk.Frame(tab_control)
tab5 = ttk.Frame(tab_control)
tab6 = ttk.Frame(tab_control)
tab7 = ttk.Frame(tab_control)
tab_control.add(tab1, text='УК РФ')
tab_control.add(tab2, text='КоАП РФ')
tab_control.add(tab3, text='Федеральные законы')
tab_control.add(tab4, text='Конституция РФ')
tab_control.add(tab5, text='ЕУП')
tab_control.add(tab6, text='Поиск')
tab_control.add(tab7, text='Заметки')
tab_control.pack(expand=0, fill='both')
window.mainloop()

Изображение №2 - https://i.yapx.ru/WR4u6.png ,​
from tkinter import *


def clicked():
open('Test.py')

window = Tk()
window.title("Наименование программы сверху")
window.geometry(f'500x300+500+400')
lbl = Label(window, text="ТЕКСТ", font=("Arial Bold", 10))
lbl.grid(column=0, row=0)
btn = Button(window, text="Не нажимать!", command=clicked)
btn.grid(column=1, row=500)



window.mainloop()

Изображение №3 - https://i.yapx.ru/WR4un.png ,​
from tkinter import *
from tkinter import messagebox
def newTask():
task = my_entry.get()
if task != " ":
lb.insert(END, task)
my_entry.delete(0, "end")
else:
messagebox.showwarning("Ошибка", "Пожалуйста, введите текст!")
def deleteTask():
lb.delete(ANCHOR)

ws = Tk()
ws.geometry(f'500x300+500+400')
ws.title('Заметки')
ws.config(bg='#223441')
ws.resizable(width=False, height=False)
frame = Frame(ws)
frame.pack(pady=10)
lb = Listbox(
frame,
width=75,
height=5,
font=('Times', 10),
bd=0,
fg='#464646',
highlightthickness=0,
selectbackground='#a6a6a6',
activestyle="none",

)
lb.pack(side=LEFT, fill=BOTH)
task_list = [
'1) УК РФ - ст. 49 - Убийство',
]
for item in task_list:
lb.insert(END, item)
sb = Scrollbar(frame)
sb.pack(side=RIGHT, fill=BOTH)
lb.config(yscrollcommand=sb.set)
sb.config(command=lb.yview)
my_entry = Entry(
ws,
font=('times', 15)
)
my_entry.pack(pady=20)
button_frame = Frame(ws)
button_frame.pack(pady=20)
addTask_btn = Button(
button_frame,
text='Добавить заметку',
font=('times 14'),
bg='#c5f776',
padx=1,
pady=1,
command=newTask
)
addTask_btn.pack(fill=BOTH, expand=True, side=LEFT)
delTask_btn = Button(
button_frame,
text='Удалить заметку',
font=('times 14'),
bg='#ff8b61',
padx=1,
pady=1,
command=deleteTask
)
delTask_btn.pack(fill=BOTH, expand=True, side=LEFT)

ws.mainloop()



Прошу прощения за такие тупые вопросы, но уже два дня убил на попытку создать такое приложение. Если можно, пожалуйста, объясните понятным языком, буду очень благодарен.​
 

4olshoy_blen

Популярный
Пользователь
Ноя 13, 2022
374
108
43
Лучше бы вы попросили прощения за то, что код вставили как обычный текст🤬 и ладно, если в первых двух спойлерах все понятно, но в 3-ем есть отступы. Предлагаешь нам опытным путем определить и расставить их и заодно подсказать по самой проблеме?😐
 

sk1nnys

Новичок
Пользователь
Июн 19, 2023
3
0
1
Извиняюсь, недоглядел, вот код:
Python:
from tkinter import *
from tkinter import ttk
from tkinter.scrolledtext import ScrolledText


window = Tk()
window.title("State assiastant")  #Наименование программы (сверху)
window.geometry(f'500x300+500+400')  #Размер окна
tab_control = ttk.Notebook(window)
menu = Menu(window)

new_item = Menu(menu, tearoff=0)
new_item.add_command(label='Новый')
new_item.add_separator()
new_item.add_command(label='Разработчик')
menu.add_cascade(label='Помощь', menu=new_item)
window.config(menu=menu)

tab1 = ttk.Frame(tab_control)
tab2 = ttk.Frame(tab_control)
tab3 = ttk.Frame(tab_control)
tab4 = ttk.Frame(tab_control)
tab5 = ttk.Frame(tab_control)
tab6 = ttk.Frame(tab_control)
tab7 = ttk.Frame(tab_control)

st = ScrolledText(tab1, width=50,  height=10)
st.pack(fill=BOTH, side=LEFT, expand=True)

tab_control.add(tab1, text='УК РФ'),  
tab_control.add(tab2, text='КоАП РФ')
tab_control.add(tab3, text='Федеральные законы')
tab_control.add(tab4, text='Конституция РФ')
tab_control.add(tab5, text='ЕУП')
tab_control.add(tab6, text='Поиск')
tab_control.add(tab7, text='Заметки')
tab_control.pack(expand=0, fill='both')

window.mainloop()
Python:
from tkinter import *
 
 
def clicked():
    open('Test.py')
 
window = Tk()
window.title("Наименование программы сверху")
window.geometry(f'500x300+500+400')
lbl = Label(window, text="ТЕКСТ", font=("Arial Bold", 10))
lbl.grid(column=0, row=0)
btn = Button(window, text="Не нажимать!", command=clicked)
btn.grid(column=1, row=500)

window.mainloop()
Python:
from tkinter import *
from tkinter import messagebox

def newTask():
    task = my_entry.get()
    if task != " ":
        lb.insert(END, task)
        my_entry.delete(0, "end")
    else:
        messagebox.showwarning("Ошибка", "Пожалуйста, введите текст!")

def deleteTask():
    lb.delete(ANCHOR)
   
ws = Tk()
ws.geometry(f'500x300+500+400')
ws.title('Заметки')
ws.config(bg='#223441')
ws.resizable(width=False, height=False)

frame = Frame(ws)
frame.pack(pady=10)

lb = Listbox(
    frame,
    width=75,
    height=5,
    font=('Times', 10),
    bd=0,
    fg='#464646',
    highlightthickness=0,
    selectbackground='#a6a6a6',
    activestyle="none",
   
)
lb.pack(side=LEFT, fill=BOTH)

task_list = [
    '1) УК РФ - ст. 49 - Убийство',
    ]

for item in task_list:
    lb.insert(END, item)

sb = Scrollbar(frame)
sb.pack(side=RIGHT, fill=BOTH)

lb.config(yscrollcommand=sb.set)
sb.config(command=lb.yview)

my_entry = Entry(
    ws,
    font=('times', 15)
    )

my_entry.pack(pady=20)

button_frame = Frame(ws)
button_frame.pack(pady=20)

addTask_btn = Button(
    button_frame,
    text='Добавить заметку',
    font=('times 14'),
    bg='#c5f776',
    padx=1,
    pady=1,
    command=newTask
)
addTask_btn.pack(fill=BOTH, expand=True, side=LEFT)

delTask_btn = Button(
    button_frame,
    text='Удалить заметку',
    font=('times 14'),
    bg='#ff8b61',
    padx=1,
    pady=1,
    command=deleteTask
)
delTask_btn.pack(fill=BOTH, expand=True, side=LEFT)


ws.mainloop()

WSEuO.png
 

Форум IT Специалистов