簡體   English   中英

將“tk.ACTIVE”轉換為列表框中的索引(行號)

[英]“Convert” tk.ACTIVE to the index (line number) in a listbox

讓我們一起解決問題:這是關於在Windows 7上運行的Python 2.7.x。

我正在創建Tkinter列表框小部件的子類,我需要子類提供的一個屬性是包含當前活動的行的索引(行號)的屬性(即具有焦點)。 我知道Tkinter支持所有采用索引的列表框方法的常量tk.ACTIVE ,但在我的自定義小部件中,此屬性需要始終是整數 ,而不是字符串。

我已經搜索了文檔,但似乎沒有方法可以返回活動行的索引,也沒有辦法將tk.ACTIVE “轉換”為有效索引號。 類似方法curselection()selection_includes()是沒有幫助的,因為這列表框總是將有一個selectmodetk.EXTENDED -這意味着可以選擇和進一步的任何數量的行,當前的有效行可以是或可以不是間他們。

我考慮使用事件綁定來等待箭頭鍵,鼠標點擊等,並查找curselection()元組的更改,但這也不是很有幫助或直截了當。 例如,假設用戶按住Shift鍵單擊以選擇范圍 - 他可以從上到下或從下到上,並且無論哪種方式,元組都只顯示范圍,而不是哪條線是活動的。

那么:是否有任何方法(公開或偷偷摸摸,簡單或復雜)來獲得tk.ACTIVE行的等效索引號?

獲取列表框活動行的行號的方法是使用index方法: listbox.index(tk.ACTIVE)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM