Я написал приложение на python 2.7 и tkinter. Я создал панель инструментов с несколькими кнопками, которые открывают соответствующие верхние окна с различными параметрами. Я использовал ttk.Checkbutton со стилем 'toolbutton' в качестве индикатора, показывающего, открыты или закрыты окна опций.
Проблема в том, что окна параметров переместятся на задний план, если выбрано другое окно. В настоящее время, если снова выбрать кнопку инструмента, окно параметров закроется. Однако я хочу закрыть окно только в том случае, если оно находится сверху. Если окно параметров не сверху, я хочу, чтобы окно переместилось вперед.
Часть кода у меня работает:
class MainWindow:
def __init__(self,application):
self.mainframe=tk.Frame(application)
application.geometry("900x600+30+30")
self.otherOptionsSelect=tk.IntVar()
self.otherOptions_Button=ttk.Checkbutton(application,style='Toolbutton',variable=self.otherOptionsSelect,
onvalue=1, offvalue=0,image=self.optionsIcon, command=self.otherOptions)
def otherOptions(self):
if self.otherOptionsSelect.get()==0:
self.otherOptions.destroy()
return
self.otherOptions=tk.Toplevel()
self.otherOptions.title("IsoSurface Options")
self.otherOptions.geometry("200x165+"+str(int(application.winfo_x())+555)+"+"+str(int(application.winfo_y())+230))
self.otherOptApply_button=ttk.Button(self.otherOptions,text="Apply",command=self.showFrame)
self.otherOptApply_button.place(x=20,y=80,width=50,height=30)
self.otherOptClose_button=ttk.Button(self.otherOptions,text="Close",command=self.otherOptionsClose)
self.otherOptClose_button.place(x=80,y=80,width=50,height=30)
def otherOptionsClose(self):
self.otherOptionsSelect.set(0)
self.otherOptions.destroy()
Вот изображение всего приложения, которое я написал:
На изображении выше каждое окно имеет соответствующую кнопку ttk.checkbutton. На данный момент переключение галочки либо открывает, либо закрывает окно. Однако то, что я действительно хочу, это закрыть окно, если окно находится перед приложением, или вывести окно на передний план, если оно находится за приложением.
Надеюсь, это прояснит некоторые вещи.
Заранее спасибо!