Domanda

Sto studiando il widget di Tkinter casella di riepilogo e sono stato in grado di trovare soluzioni per le seguenti funzionalità:

  1. Come posso creare gli elementi di separazione orizzontale non selezionabili, ad esempio. separatori equivalenti a .add_separator del widget Menu Tkinter ()? (Usando caratteri come trattini e underscore sembra terribile).

  2. Come faccio a disattivare un elemento specifico? Ho provato ad utilizzare .itemconfig (indice, state = 'disabilitato') senza successo.

  3. Come posso abilitare la navigazione da tastiera, per esempio. quando l'input da tastiera di un utente scorre automaticamente uno in avanti alla voce più vicina che inizia con il testo digitato dall'utente? Devo bind ( ', ...) e gestire questo comportamento me stesso?

  4. Sarebbe alcune delle funzionalità di cui sopra sia più facile da implementare utilizzando un widget di testo o la TTK TreeView widget di?

Grazie, Malcolm

È stato utile?

Soluzione

  1. non si può. Il widget non supporta questo.

  2. non è possibile disattivare alcuni elementi, il widget non supporta un attributo dello stato. Detto questo, è possibile monitorare la selezione e fare la cosa giusta, se l'utente seleziona qualcosa che è disattivata, e valorizzare la conoscenze acquisite voce per indicare disattivato-ness.

  3. Si avrà bisogno di legarsi a eventi di pressione e gestire il comportamento da soli. Non è particolarmente difficile, solo un po 'noioso.

  4. Il testo del widget potrebbe essere la soluzione migliore, anche se dovrete aggiungere binding per imitare le associazioni di default della casella di riepilogo.

In conclusione: Tkinter fornisce nulla che direttamente supporta ciò che si vuole fare, ma i mattoni ci sono tutti. Non vi resta che costruire da soli.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top