私はpython 2.7とtkinterでアプリケーションを書いています。私は様々なオプションを表示するそれぞれのトップウィンドウを開くいくつかのボタンを備えたツールバーを作成しました。オプションウィンドウが開いているか閉じているかを示す指標として、「ツールボタン」スタイルのttk.Checkbuttonを使用しました。現在どのtkinterウィンドウが上にあるかを調べる
問題は、別のウィンドウが選択されている場合、オプションウィンドウが背面に移動することです。現在、ツールボタンを再度選択すると、オプションウィンドウが閉じます。しかし、私はそれが上にある場合、ウィンドウを閉じたいだけです。オプションウィンドウが上にない場合は、ウィンドウを前面に移動します。
Iが作動しているコードの一部:ここ
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を有します。現時点では、チェックボタンを切り替えると、ウィンドウが開閉されます。しかし、私が本当にやりたいことは、ウィンドウがアプリケーションの前にある場合はウィンドウを閉じ、アプリケーションの後ろにある場合はウィンドウを前面に持っていくことです。
これによっていくつかの問題が解決されることを願っています。
ありがとうございます!
チェックボタンを選択した場合、チェックボタン付きのウィンドウは常に上に表示されませんか、または背景ウィンドウのボタンをクリックできるウィンドウマネージャはありますか? –
おそらく私は少しこれをクリアする必要があります。私は、複数のチェックボタンを備えたツールバーがある「メインウィンドウ」を持っています。各チェックボタンは "トップレベル"ウィンドウを開閉しますが、 "メインウィンドウ"はまだアクティブです。 「トップレベル」のウィンドウは、常に「メインウィンドウ」の上にあるわけではありません。バックグラウンドに移動できます。たぶん私はいくつかの画像を投稿しようとします。 – Onlyjus
私はイメージを投稿しようとしましたが、私はもっと評判が必要です... – Onlyjus