[Python] Controllare la barra di scorrimento verticale

Adriano Barbieri adrianobarb a yahoo.it
Dom 14 Apr 2013 15:20:57 CEST


Salve a tutti.
Credo di aver risolto il problema dello scorrimento verticale in una classe 
di dialogo contenente un numero variabile di TextCtrl... non so se ricordate 
la classe MultiTextEntryDialog che postai qualche giorno fa.
Ho aggiunto queste due righe per attivare lo scroll automatico:

self.DoLayoutAdaptation()
  self.SetLayoutAdaptationLevel(self.GetLayoutAdaptationLevel())

E' apparsa la barra verticale di scorrimento e col mouse si gestisce bene.
I bottoni "OK" e "Annulla" ora sono visibili e restano fermi al loro posto, 
mentre i TextCtrl scorrono a piacimento con la barra verticale.
A volte un po' in leggero ritardo, e non so se è perché ho 32 TextCtrlda 
scrollare o ho sbagliato qualcosa.
Quindi questa è la prima questione.
Poi...
La rotellina del mouse non è gestita automaticamente, così ho collegato un 
evento ad essa:

self.Bind(wx.EVT_MOUSEWHEEL, self.OnScrollDialog)

def OnScrollDialog(self, evt):
"""Evento rotella del mouse"""
#qui vorrei trovare la posizione del cursore della barra di scorrimento 
verticale del tipo:
t=self.ThumbPosition(wx.SB_VERTICAL)
#Ma il problema è che non ho l'ID della barra e non sono neanche sicuro 
dell'istruzione sopradescritta... seconda questione: come lo trovo?
#per il resto la funzione prosegue con:
  r=evt.GetWheelRotation()
  if r > 0:
   #self.ScrollBar(0, -5) # scroll  verso l'alto
   return
  elif r < 0: #scroll verso il basso
   #self.ScrollBar(0, 5)
   return

Nelcontrollo ho messo delle istruzioni di scroll come esempio e dei return 
per non generare un errore, ma mi servirebbero le istruzioni, (e questa è 
l'ultima domanda) per muovere il cursore da codice, sempre se è fattibile!
Grazie, Adriano
 



Maggiori informazioni sulla lista Python