Comment puis-je corriger le bug de défilement lors de l'utilisation des contrôles d'édition de Windows riches en wxpython?

StackOverflow https://stackoverflow.com/questions/2845824

Question

Lors de l'utilisation wx.TextCtl avec l'option wx.TE_RICH2 dans les fenêtres, je reçois ce bug étrange avec le défilement automatique lorsque vous utilisez la fonction AppendText. Il défile pour que tout le texte est au-dessus de la zone visible, ce qui est un comportement très utile.

J'essayé simplement l'ajout d'un appel à Scrolllines (-1) après le texte annexant - qui fait défiler à la position correcte - mais cela peut conduire à la fenêtre clignote lorsque celle-ci défile auto. Donc, je suis à la recherche d'une autre façon de faire défiler vers le bas.

Jusqu'à présent, ma solution est de contourner les fonctions de défilement automatique appendText et mettre en œuvre ma propre, comme ceci:

def append_text(textctrl, text):
    before_number_of_lines = textctrl.GetNumberOfLines()

    textctrl.SetInsertionPointEnd()
    textctrl.WriteText(text)

    after_number_of_lines = textctrl.GetNumberOfLines()
    textctrl.ScrollLines(before_number_of_lines - after_number_of_lines + 1)

Y at-il une meilleure façon?

Était-ce utile?

La solution

Vous êtes proche.

    textctrl.SetInsertionPointEnd()
    textctrl.WriteText(licence)
    textctrl.SetInsertionPointEnd()

Autres conseils

Vous pouvez utiliser ce qui suit pour corriger le bug de défilement lors de l'utilisation des contrôles d'édition de Windows riche en wxpython:

textctrl.MoveEnd()
textctrl.WriteText(text)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top