Sekme sırası sırasına dönüş varsayılan içinde widget'ları oluşturulur o yığın sırasının dayanmaktadır. tkraise
(veya lift
) ve lower
yöntemlerini kullanarak yığınlama sırasını (ve dolayısıyla sekme sırasını) ayarlayabilirsiniz.
Bu
CTRL +
Tab basın gerek kalmadan sizin için kutunun dışında çalışıyor olması gerekir. Bununla birlikte, bu sekmenin, odağı başka bir kontrole taşımak yerine metin widget'larında bir tamsayı sekmesi eklediğini unutmayın. Bu varsayılan davranış, elbette değiştirilebilir.
İşte sekme sırasını tersine çevirmek için nasıl gösteren bir örnek. Örneği çalıştırırken, ilk girişteki sekmeye basmak sizi sonuncuya götürmelidir. Tekrar sekmeyi basılması, daha sonra ilk, sabun, yerli Tk
komutları raise
ve lower
ancak raise
beri Tkinter yeniden adlandırılan gerekiyordu Python ayrılmış bir sözcüktür olduklarını, durulama
Not tekrarlamak saniyede götürür.
import Tkinter as tk
class SampleApp(tk.Tk):
def __init__(self, *args, **kwargs):
tk.Tk.__init__(self, *args, **kwargs)
e1 = tk.Entry(self)
e2 = tk.Entry(self)
e3 = tk.Entry(self)
e1.insert(0,"1")
e2.insert(0,"2")
e3.insert(0,"3")
e1.pack()
e2.pack()
e3.pack()
# reverse the stacking order to show how
# it affects tab order
new_order = (e3, e2, e1)
for widget in new_order:
widget.lift()
if __name__ == "__main__":
app = SampleApp()
app.mainloop()
Eğer CTRL + Tab yapmak zorunda söz beri bir metin widget sekmesi anahtar değişim odağı çalışıyoruz tahmin ediyorum. Normalde bir sekme tuşu, bir tamsayı sekmesi ekler. Ne zaman odak değiştirmek istiyorsanız, sadece <Tab>
olaya bağlama ekleyin.
Tkinter odağı almalısınız sonraki widget adını döndürür bir işlevi vardır. Ne yazık ki, Tkinter'in eski versiyonları için bu fonksiyon arabası. Bununla birlikte, bu konuda çalışmak kolaydır. Yukarıdaki kod için ekleyebileceğiniz birkaç yöntem:
def _focusNext(self, widget):
'''Return the next widget in tab order'''
widget = self.tk.call('tk_focusNext', widget._w)
if not widget: return None
return self.nametowidget(widget.string)
def OnTextTab(self, event):
'''Move focus to next widget'''
widget = event.widget
next = self._focusNext(widget)
next.focus()
return "break"