2012-04-06 8 views

Odpowiedz

21

Krótka odpowiedź: ustawić atrybut każdego listbox exportselection do False

Tkinter ma swoje korzenie w systemie X okienkowym. X ma koncepcję zwaną "selekcja", która jest podobna do schowka systemowego (dokładniej, schowek jest wyborem "PODSTAWOWYM"). Domyślnie kilka widgetów tkinter eksportuje swój wybór do wyboru PRIMARY. Aplikacja może mieć tylko jeden wybór PIERWSZY na raz, dlatego podświetlenie znika po kliknięciu między dwoma listami.

Tkinter zapewnia kontrolę nad tym zachowaniem za pomocą opcji konfiguracyjnej exportselection dla listbox (oraz widżetów tekstowych i wpisów). Ustawienie go na False zapobiega eksportowaniu zaznaczenia do zaznaczenia X, dzięki czemu widget zachowuje swój wybór, gdy inny widget zostanie ustawiony.

Na przykład

the_listbox = tk.Listbox(..., exportselection=False) 

Cytowanie z official tk documentation:

exportselection określić czy selekcji na widget należy również wybór X. Wartość może mieć dowolną z form zaakceptowanych przez Tcl_GetBoolean, takich jak true, false, 0, 1, yes lub no. Po wyeksportowaniu zaznaczenia wybór w widżecie powoduje odznaczenie bieżącego wyboru X, zaznaczając poza widżetem dowolny wybór widżetu, a widget będzie odpowiadał na żądania pobierania wyboru , gdy ma zaznaczenie. Wartością domyślną jest zazwyczaj wyeksportowanie widżetów w postaci .

Powiązane problemy