J'utilise un wx.TextCtrl au texte de sortie d'un démon réseau.
Comme la sortie est assez verbeuse, la taille du texte dans le TextCtrl peut devenir énorme (BTW y a-t-il une limitation sur la taille du contenu d'un TextCtrl?)
Je voudrais supprimer les N lignes supérieures du TextCtrl lorsque TextCtrl.GetNumberOfLines() dépasse un seuil prédéfini. Quelle est la meilleure façon d'y parvenir?lignes de wx.TextCtrl Suppression
Répondre
Le SetMaxLength reference dit que la limitation dépend du contrôle de texte natif sous-jacent, mais devrait être au moins 32 Ko.
A propos de la suppression des lignes N top, vous pouvez essayer d'appeler GetLineLength pour 0..N-1, calculer la somme S puis appelez Remove (0, S)
Que diriez-vous de la méthode Remove de wx.TextCtrl?
Chaque fois que vous êtes sur le point d'ajouter un nouveau texte, vous pouvez vérifier si le texte actuel semble trop long et supprimer certains dès le début.
Supprimer() devrait faire l'affaire.
TextCtrl sans drapeau wx.TE_RICH ne peut pas avoir plus de 64 Ko sur Windows.
Vous devriez pouvoir utiliser wx.TextCtrl.PositionToXY()
et wx.TextCtrl.XYToPosition()
pour convertir la position (mesurée en caractères depuis le début) vers et à partir d'une paire (column, line_num)
.
Ainsi, vous pouvez utiliser i = wx.TextCtrl.XYToPosition(0, n)
pour obtenir la position i
d'une ligne particulière n (ou n + 1, selon la façon dont vous comptez les ou à base de 1 0--), puis appelez wx.TextCtrl.Remove(0, i)
pour enlever la premier n lignes.
- 1. lignes de suppression GridView
- 2. Suppression de lignes de QTreeWidget (programmation qt)
- 3. Suppression de lignes de Datatable dans vb.net
- 4. Suppression de lignes en double dans vi?
- 5. Masquage de la barre de défilement verticale dans wx.TextCtrl
- 6. Suppression des lignes d'ID non uniques
- 7. Suppression des lignes en double dans Postgres
- 8. jQuery suppression des colonnes et des lignes
- 9. Suppression ou suppression de lignes dans la table de destination du package ssis
- 10. Suppression de plusieurs lignes dans un datagridview non lié
- 11. Suppression de plusieurs lignes dans DataGrid à l'aide
- 12. suppression des lignes en double à partir du fichier/grep
- 13. Suppression de lignes dans des tables jointes à l'aide de ADO
- 14. Infragistics Confirmation de suppression UltraWinGrid
- 15. Comment gérer les lignes non visibles lors de la suppression d'une ligne. (UITableViews)
- 16. suppression de lignes d'un tableau numpy basé sur l'unicité d'une valeur
- 17. Effacement/réinitialisation d'un modèle en qt (suppression de toutes les lignes)
- 18. Comment puis-je obtenir la position/plage de défilement à partir d'un contrôle wx.TextCtrl dans wxPython
- 19. Suppression d'une table entière
- 20. Suppression de boutons
- 21. Suppression de Python HTML
- 22. Ajout suppression de guillemets
- 23. Suppression de QWinWidget
- 24. Suppression de l'info-bulle
- 25. Opération de suppression NHibernate
- 26. render_to_string balisage de suppression
- 27. Suppression de doublons
- 28. Suppression message de démarrage JGroups: GMS
- 29. Suppression d'une application d'ajout/suppression de programmes dans C#
- 30. uitableview: suppression de sections avec animation
Merci. C'est ce que je suis venu avec: deleteLines def (auto, numLines): size = 0 pour i dans la gamme (numLines): self.outputdevice.Remove (0, self.outputdevice.GetLineLength (0)) –
Oui , cela semble bon, supprime le besoin de calcul de la somme. – schnaader
Je compare la performance d'appeler N fois getLineLength() et 1 fois remove() vs appeler N fois Supprimer * et * N fois GetLineLength(). Juste pour la référence. – Abgan