[英]Python gtk notebook focus chain
我正在嘗試設置一個帶有筆記本和一些頁面的窗口。 在頁面內,將有一些條目(請參見示例代碼)。
我想自己處理Tab鍵和箭頭鍵。 我不希望向上箭頭鍵跳到頁面標題,也不希望向左/右箭頭鍵在頁面之間循環。 我不希望使用Tab鍵來遍歷所有條目。
連接到按鍵信號並檢查選項卡或箭頭鍵並不能真正起作用。
我試圖更改焦點鏈,但是它仍然專注於頁面標題或帶有左/右箭頭的頁面循環顯示。
任何幫助/想法都受到高度贊賞。
#!/usr/bin/env python
import pygtk
import gtk
class NotebookExample:
def __init__(self):
window = gtk.Window(gtk.WINDOW_TOPLEVEL)
window.set_size_request(200,200)
notebook = gtk.Notebook()
notebook.set_tab_pos(gtk.POS_TOP)
notebook.show()
hbox1 = gtk.HBox()
notebook.append_page(hbox1, gtk.Label("Page1"))
hbox2 = gtk.HBox()
notebook.append_page(hbox2, gtk.Label("Page2"))
window.add(notebook)
entry1 = gtk.Entry()
entry2 = gtk.Entry()
entry3 = gtk.Entry()
entry1.set_width_chars(5)
entry2.set_width_chars(5)
entry3.set_width_chars(5)
hbox1.pack_start(entry1, False, False, 10)
hbox1.pack_start(entry2, False, False, 10)
hbox1.pack_start(entry3, False, False, 10)
hbox1.set_focus_chain([entry2, entry3])
window.show_all()
def main():
gtk.main()
return 0
if __name__ == "__main__":
NotebookExample()
main()
找到了。
偵聽按鍵事件,並返回“ True,以阻止為該事件調用其他處理程序。為False,則進一步傳播事件。
window.connect("key-press-event", self.do_key_press)
def do_key_press(self, widget, event):
if gtk.gdk.keyval_name(event.keyval) == 'Tab':
print "tab"
return True
if gtk.gdk.keyval_name(event.keyval) == 'Left' or gtk.gdk.keyval_name(event.keyval) == 'Right':
print "cursor"
return True
return
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.