我試圖做一個Toplevel
的構件,在屏幕上(我希望如此,如果你按輸入上的活動窗口,它退出窗口。我已經有鑰匙綁定窗口小部件,但我似乎無法讓窗口成爲我電腦上的主窗口,我正在使用Notepad ++運行我的程序(我有一個用於此特定程序的快捷方式,因爲我將使用它很多)做一個Tkinter的Toplevel的積極
這裏是我的代碼:
def main():
root = Tk(className = ' Module Opener')
app = GetFileName(root)
root.rowconfigure(0, weight = 1)
root.columnconfigure(0, weight = 1)
root.bind('<Return>', (lambda e, b=app.goButton: b.invoke()))
root.mainloop()
f, pythonType = app.fileName, app.pythonType
if f[-3:] != '.py': f += '.py'
moduleFile = getFilePath(f, pythonType)
if not moduleFile is None:
subprocess.call([r"C:\Program Files\Notepad++\notepad++.exe", moduleFile])
else:
root.withdraw()
finalRoot = Toplevel(root)
finalRoot.grab_set() # I thought this would make it active
finalApp = FileNotExist(finalRoot, f)
finalRoot.rowconfigure(0, weight = 1)
finalRoot.columnconfigure(0, weight = 1)
finalRoot.bind('<Return>', (lambda e, b=finalApp.okButton: b.invoke()))
finalRoot.mainloop()
我想它,以便它打開時,如果我按輸入,它執行我的命令;不過,我必須先點擊窗口才能激活,然後才能正常工作。
我試着如finalRoot.lift()
,finalRoot.focus_set()
,finalRoot.grab_set()
/finalRoot.grab_set_global()
(我看到another question這些方法)不同的東西,finalRoot.focus()
。
第一個窗口Tk()
在程序啓動時處於活動狀態。但是,Toplevel()
不是。我也嘗試製作兩個Tk()
(摧毀root
,然後創建finalRoot
作爲新的Tk()
實例),但這種方式並不奏效。我怎樣才能做到這一點?謝謝!
我的操作系統是Windows 7(專業)。我認爲會有一種方法,但不要猜測... –