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


_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python

Rispondere a