Comment faire défiler le texte en Python/Malédictions sous-fenêtre?
Dans mon script Python qui utilise des Malédictions, j'ai un subwin à laquelle un texte est attribué. Parce que la longueur du texte peut être plus longue que la taille de la fenêtre, le texte doit être déplacé.
Il ne semble pas qu'il y est une feuille CSS-"dépassement" comme attribut pour les Malédictions de windows. Le Python/Malédictions docs sont aussi plutôt cryptique sur cet aspect.
Quelqu'un ici a une idée comment je peux la coder un défilement de Malédictions sous-fenêtre à l'aide de Python et fait défiler à travers elle?
\edit: plus question précise
Vous devez vous connecter pour publier un commentaire.
OK avec fenêtre.faites défiler jusqu'c'était trop compliqué de déplacer le contenu de la fenêtre. Au lieu de cela, les malédictions.newpad a fait pour moi.
Créer un pad:
Ensuite, vous pouvez faire défiler en augmentant/diminuant mypad_pos en fonction de l'entrée de la fenêtre.getch() dans cmd:
Droite, j'ai été un peu confus sur la façon d'utiliser les plaquettes (dans l'ordre de défilement de texte), et encore ne pouvait pas le comprendre après avoir lu ce post, surtout parce que je voulais l'utiliser dans un contexte de contenu existant "tableau de lignes". J'ai donc préparé un petit exemple, qui montre des similitudes (et les différences) entre
newpad
etsubpad
:Lorsque vous exécutez cette, au premier abord, vous obtiendrez quelque chose comme (
newpad
gauche,subpad
à droite):Quelques remarques:
newpad
etsubpad
devraient avoir leur largeur/hauteur de taille pour le contenu (nombre de lignes/max largeur de ligne de la matrice de lignes) + éventuelle frontière de l'espacescrollok()
- mais pas d'une largeurscroll()
jusqu'à faire de la place pour la prochainerefresh
méthode quinewpad
a, ensuite pour juste une région de ce "tout le contenu" pour être affiché à l'écran;subpad
plus-moins doit être indiqué dans la taille, il a été instancié dans───
pièce montrée à la...Line 1 ───│
partie).Liens utiles:
La fenêtre.scrollok(True).
La Documentation
Je voulais utiliser un pavé de défilement pour afficher le contenu de certains grands fichiers texte, mais cela ne fonctionne pas bien, parce que les textes peuvent avoir des sauts de ligne et il est assez difficile de déterminer le nombre de caractères à afficher à la fois pour s'adapter à bon nombre de colonnes et de lignes.
J'ai donc décidé de première division, mes fichiers de texte dans les lignes de exactement les COLONNES de caractères, rembourrage avec des espaces où les lignes sont trop courtes. Faites défiler le texte à devenir plus facile.
Voici un exemple de code pour afficher n'importe quel fichier texte:
L'astuce principale est la ligne:
Premier, tableaux dans le texte sont converties en espaces, puis j'ai utilisé splitlines() méthode pour convertir mon texte dans la gamme de lignes.
Mais certaines lignes peuvent être plus longs que nos COLONNES, nombre, alors j'ai découpé chaque ligne du morceau de COLONNES de caractères, puis utilisé de réduire de transformer la liste dans une liste de lignes.
Enfin, j'ai utilisé la carte pour remplir chaque ligne avec les espaces de fin de sorte que sa longueur est exactement COLONNES de caractères.
Espère que cette aide.
C'est la réponse à cette question:
Comment faire un menu déroulant en python-curses
Ce code vous permet de créer un petit menu déroulant dans une boîte à partir d'une liste de chaînes de caractères.
Vous pouvez également utiliser ce code obtenir la liste des chaînes à partir d'une requête sqlite ou à partir d'un fichier csv.
Pour modifier le nombre maximum de lignes du menu, vous avez juste à modifier
max_row
.Si vous appuyez sur entrée, le programme affichera la chaîne sélectionnée de la valeur et de sa position.