![](/img/trans.png)
[英]_tkinter.TclError: bad listbox index “”: must be active, anchor, end, @x,y, or a number
[英]“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()
是沒有幫助的,因為這列表框總是將有一個selectmode
的tk.EXTENDED
-這意味着可以選擇和進一步的任何數量的行,當前的有效行可以是或可以不是間他們。
我考慮使用事件綁定來等待箭頭鍵,鼠標點擊等,並查找curselection()
元組的更改,但這也不是很有幫助或直截了當。 例如,假設用戶按住Shift鍵單擊以選擇范圍 - 他可以從上到下或從下到上,並且無論哪種方式,元組都只顯示范圍,而不是哪條線是活動的。
那么:是否有任何方法(公開或偷偷摸摸,簡單或復雜)來獲得tk.ACTIVE
行的等效索引號?
獲取列表框活動行的行號的方法是使用index
方法: listbox.index(tk.ACTIVE)
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.