#python #tkinter #tkinter-menu
Вопрос:
Поэтому я пытаюсь центрировать окно в Tkinter, но по каким-то причинам, когда я добавляю строку меню в окно, окно больше не центрируется при запуске кода. Почему добавление меню приводит к этому и как это предотвратить?
Если функция меню не вызывается, окно центрируется правильно.
Вот код:
from tkinter import * def win_ctr(win): win.update_idletasks() size=tuple(int(_)for _ in win.geometry().split(" ")[0].split("x")) win.geometry(" %d %d" % (win.winfo_screenwidth()/2 - size[0]/2, win.winfo_screenheight()/2 - size[1]/2 )) def ac(): print("test") def wmenu(win): menu_bar=Menu(win) file_menu=Menu(menu_bar,tearoff=0) file_menu.add_command(label="Clear",command=ac) file_menu.add_separator() file_menu.add_command(label="Quitter",command=win.quit) menu_bar.add_cascade(label="MENU",menu=file_menu) win.config(menu=menu_bar) def initUI(win): wmenu(win) def main(): win=Tk() win.title("Test") win.geometry("354x460") win.resizable(True, True) win.config(bg=mint) win_ctr(win) initUI(win) win.mainloop() if __name__=="__main__": mint="#41B77F" main()
Комментарии:
1. Вы пробовали поменять местами две строки
win_ctr(win)
иinitUI(win)
?2. @acw1668 Спасибо, я думал, что уже пробовал, но на самом деле нет, так что теперь все работает, спасибо.