[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