Доброго времени суток!
Подскажите как сделать, чтобы окно(Toplevel) всплывало по центру программы? Библиотека Tkinter, python 3.x
root.update_idletasks() width = your_toplevel.winfo_width() height = your_root.winfo_height() x = (root.winfo_screenwidth() // 2) - (width // 2) y = (root.winfo_screenheight() // 2) - (height // 2) your_toplevel.geometry('{0}x{1}+{2}+{3}'.format(width, height, x, y))
def dialog(event): win = Toplevel(root,width=400,height=100 ) but3 = Button(win, text="Выход",width=30,height=5, bg="white",fg="black") but3.bind("<Button-1>", win.destroy) but3.place(relx=0.75,rely=0.55,relwidth=0.2,relheight=0.3)
4kpt_IIIСпасибо!
Держите.
victoreva
Выдает ошибку: TypeError: destroy() takes 1 positional argument but 2 were given
def dialog(event): win = Toplevel(root,width=400,height=100 ) but3 = Button(win, text="Выход",width=30,height=5, bg="white",fg="black") but3.bind("<Button-1>", lambda event: win.destroy()) but3.place(relx=0.75,rely=0.55,relwidth=0.2,relheight=0.3)
def helpfull(): frame1=Frame(root,bd=0) frame1.place(relx=0.05,rely=0.05,relwidth=0.35,relheight=0.85) but2 = Button(frame1, text="Основные сведения",width=30,height=5, bg="white",fg="black") but2.bind("<Button-1>", lambda event:dialog(systeminfo,systeminfo1)) but2.place(relx=0,rely=0.05,relwidth=1,relheight=0.03) def func1(a1): cmd='bat\Helpful information\'+ a1 + '.bat' proba=subprocess.check_output(cmd, stderr=subprocess.STDOUT) send_text(proba) def func1(a2): cmd='bat\Helpful information\' + a2 + '.bat' proba=subprocess.check_output(cmd, stderr=subprocess.STDOUT) send_text(proba) def dialog(batnik1,batnik2): win = Toplevel(root,width=400,height=100 ) but1 = Button(win, text="Поле программы",width=30,height=5, bg="white",fg="black") but1.bind("<Button-1>",lambda event:func1(batnik1)) but1.place(relx=0.05,rely=0.55,relwidth=0.3,relheight=0.3) but2 = Button(win, text="Текстовый файл",width=30,height=5, bg="white",fg="black") but2.bind("<Button-1>",lambda event:func2(batnik2)) but2.place(relx=0.4,rely=0.55,relwidth=0.3,relheight=0.3) but3 = Button(win, text="Отмена",width=30,height=5, bg="white",fg="black") but3.bind("<Button-1>", lambda event: win.destroy()) but3.place(relx=0.75,rely=0.55,relwidth=0.2,relheight=0.3)
4kpt_IIIНа счет первого пункта - исправлю потом)
И я все же рекомендую Вам 2 вещи:
1. Не пишите from tkinter import*
2. Не используйте менеджер геометрии place. Лучше grid или pack.