2015-12-15 36 views
1

這是一些簡化的代碼。我們只是說,由於與此示例無關的原因,我想讓根窗口處於活動狀態,而不僅僅是頂部。使Python GUI有效

from tkinter import * 
import time 

root = Tk() 


def wake(): 
    time.sleep(3) 
    root.attributes("-topmost", True) 
    root.attributes("-topmost", FALSE) 

button = Button(root, text='Bring Forth!', command=wake) 
button.pack() 

root.mainloop() 

當你按下按鈕,轉到另一個應用程序,它再次出現在上面,而不是「積極的」,如「傳統知識」的標題和菜單按鈕,直到你點擊某處GUI是灰色的。我知道這似乎很奇怪,但它會非常有幫助。謝謝

+0

哪個平臺,你在說什麼?視窗? MacOS X?還有別的嗎? Tkinter應用程序似乎很難用MacOS X激活,所以人們使用這樣的解決方法:http://stackoverflow.com/a/32121848/39223 – RJHunter

+0

您是否嘗試過'w.focus_force()'。檢查[這裏](http://infohost.nmt.edu/tcc/help/pubs/tkinter/web/universal.html)。 – Quirk

+0

我正在運行Windows平臺。我嘗試了root.focus_force(),但它似乎沒有做任何事情,儘管描述似乎與我正在嘗試做的事情相匹配。我還嘗試了root.grab_set_global進一步下載,但沒有運氣:( – MANA624

回答

0

嘗試調用root.grab_set()然後root.focus()這樣的:

def wake(): 
    time.sleep(3) 
    root.attributes("-topmost", True) 
    root.grab_set() 
    root.focus() 
    root.attributes("-topmost", FALSE) 

它在Windows 7專業版..

+0

@ MANA它工作嗎? –