[Python] posizionare il cursore

csplit csplitfs a gmail.com
Gio 30 Ago 2012 21:01:10 CEST


Il 30/08/2012 08:56, Lorenzo Sutton ha scritto:
> On 29/08/12 18:50, csplit wrote:
>> Il 29/08/2012 12:31, Lorenzo Sutton ha scritto:
>>> On 28/08/12 21:59, csplit wrote:
>>>> Ciao a tutti.
>>>> Voglio usare Python 3.1.2 secondo il paradigma della programmazione
>>>> strutturata e ho il problema di posizionare il cursore in termini di
>>>> riga e colonna nella finestra grafica aperta da IDLE.
>>>> Cerco qualcosa che assomigli a LOCATE CSRLIN POS LPOS del vecchio
>>>> qbasic.
>>>> Es.:
>>>> leggo un numero da tastiera:
>>>> np=input("Numero? ")
>>>> elaboro e stampo il risultato:
>>>> print (giocata," ",np ,ris)
>>>> voglio ottenere questo:
>>>>
>>>> Numero? 12345  1   12345 I o o
>>>>                ^
>>>>              _qui_
>>>> voglio posizionarmi _qui_ ma non riesco.
>>>
>>> Su un terminale (linux) che riconosca gli escape VT100 [1][2] potresti
>>> fare un hack del genere (Python 2.7):
>>>
>>> prompt_string = "Numero: "
>>> np = raw_input(prompt_string)
>>> right_pad = len(prompt_string) + len (np)
>>> move_right_esc = "\033[%dC" % right_pad
>>> line_up_esc = "\033[1A"
>>> print line_up_esc + move_right_esc," " * 2, "1" , np,"o" ,"o"
>>
>> Ecco, questa è la soluzione che cercavo, peccato che non riesca a
>> farla funzionare nella finestra di IDLE.
>
> Perché per forza la finestra IDLE? Sarà questo l'ambiente che userai
> realmente quando rilascerai il tuo programma? Solo per curiosità :)

Ho iniziato a interessare alcuni studenti di prima superiore a lavorare 
in quel modo e volevo mantenere "stabile" l'ambiente, finché si può...
Accetto suggerimenti, anche in privato, se andiamo OT.

>>> Ma forse è meglio curses come molti hanno già consigliato :)
>>>
>>> Lorenzo.
>>
>> Sì, mi sto rassegnando all'idea di usare ncurses,
>>
>>> [1] http://it.wikipedia.org/wiki/VT100
>>
>> Ottimo link:
>>> [2] http://ascii-table.com/ansi-escape-sequences-vt-100.php
>>
>>>> E' possibile?
>>>> Se sì, come?
>>
>> Ciao e grazie.


Maggiori informazioni sulla lista Python