• tcl/tk manca winfo?

    From Davide Prina@21:1/5 to All on Wed Aug 11 23:20:01 2021
    Ciao,

    volevo imparare ad usare tcl/tk per poter creare delle interfacce in
    modo semplice e veloce direttamente da file di script.

    Leggendo la documentazione trovo indicato il comando winfo

    # apt install tk-doc

    $ man winfo
    winfo(3tk) Tk Built-In Commands

    ___________________________________
    NAME
    winfo - Return window-related information
    [...]

    quindi vedo che è un comando built-in, ma se eseguo
    $ winfo
    bash: winfo: comando non trovato

    ho provato anche da tclsh, stesso risultato

    se lo cerco con apt-file, naturalmente, non esiste dato che è indicato
    essere un comando built-in. Ma dov'è contenuto?

    Sto seguendo questo tutorial:
    https://tkdocs.com/tutorial/concepts.html

    dove propone un esempio su come usarlo (in Widget Introspection), ma se
    eseguo quel codice mi dice che non sa cosa sia winfo.

    Ho quindi visto che anche bind è un comando built-in, ma questo però funziona e anche gli esempi con bind funzionano.

    Ciao
    Davide

    --
    Motivi per non comprare/usare ms-windows7:
    http://windows7sins.org/
    Non autorizzo la memorizzazione del mio indirizzo su outlook

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Alessandro Rubini@21:1/5 to All on Thu Aug 12 10:30:01 2021
    $ man winfo
    winfo(3tk) Tk Built-In Commands

    Tutti i comandi tcl/tk sono del linguaggio tcl (e del toolkit tk che
    aggiunge comandi al linguaggio).

    Il capitolo "3tk" del manuale winfo indica quello.

    La shell tk si chiama wish (windowing shell). Si puo` usare
    interattivamente o per eseguire script, come tutti gli altri linguaggi interpretati.

    Allego un mio programmino della palla che rimbalza. Amo tcl/tk, mi spiace
    che sia passato di moda.

    /alessandro

    #!/usr/bin/wish
    set w 240; set h 320
    wm geometry . ${w}x${h}
    wm overrideredirect . true
    pack [canvas .c -width $w -height $h]
    set maxx [expr $w-10]
    set maxy [expr $h-10]
    set I [.c create oval 0 0 10 10 -fill red]

    # parameters
    set sx 100.0; set sy 0.0;
    set ela 0.9
    set acc 1000.0
    set attr 4.0
    set x 0.0
    set y 0.0

    #speed x, speed x increment
    set prevt [clock clicks -milliseconds]
    update
    # press
    bind .c <1> {
    set sx [expr $sx + $attr * (%x - $x +5)]
    set sy [expr $sy + $attr * (%y - $y +5)]
    }

    # calc
    while 1 {
    set t [clock clicks -milliseconds]
    set deltat [expr ($t-$prevt)/1000.0]

    # horizontal
    set x [expr $x + $sx*$deltat]
    if {$x > $maxx} {
    set x [expr 2*$maxx - $x]
    set sx [expr -$ela*$sx]
    set sy [expr $ela*$sy]
    }
    if {$x < 0} {
    set x [expr -$x]
    set sx [expr -$ela*$sx]
    set sy [expr $ela*$sy]
    }

    # vertical
    if $y!=$maxy {set sy [expr $sy+$acc*$deltat]}
    set y [expr $y + $sy*$deltat]
    if {$y > $maxy} {
    set y [expr 2*$maxy - $y]
    set sx [expr $ela*$sx]
    if $sy>$acc*$deltat {
    set sy [expr -$ela*$sy]
    } else {
    set sy 0.0; set y $maxy
    }
    }
    if {$y < 0} {
    set y [expr -$y]
    set sx [expr $ela*$sx]
    set sy [expr -$ela*$sy]
    }

    # puts "($deltat) $x $sx $y $sy"
    .c coords $I $x $y [expr $x+10] [expr $y+10]
    update
    after 10
    set prevt $t
    }

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From cage@21:1/5 to Alessandro Rubini on Thu Aug 12 10:50:01 2021
    On Thu, Aug 12, 2021 at 10:24:13AM +0200, Alessandro Rubini wrote:

    Ciao!

    [...]

    Amo tcl/tk, mi spiace che sia passato di moda.

    Ma e' ancora vivo e vegeto per fortuna! :)

    Ciao!
    C.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From cage@21:1/5 to Davide Prina on Thu Aug 12 10:30:01 2021
    On Wed, Aug 11, 2021 at 11:13:42PM +0200, Davide Prina wrote:
    Ciao,

    Ciao!!

    volevo imparare ad usare tcl/tk per poter creare delle interfacce in modo semplice e veloce direttamente da file di script.

    E funziona anche bene :)

    [...]

    quindi vedo che è un comando built-in, ma se eseguo
    $ winfo
    bash: winfo: comando non trovato

    ho provato anche da tclsh, stesso risultato

    Il comando winfo non e' un comando che la shell possa interpretare ma
    un comando TK (il toolkit grafico di TCL).

    La prima cosa da fare se vuoi programmare in TK (usando il linguaggio
    TCL) è avviare la shell che interpreterà i comandi TK o TCL:

    $ wish

    Che aprirà anche una finestra Xwindow (la root o meglio la finestra toplevel) Successivamente puoi chiamare winfo

    % winfo geometry .
    800x600+1+20

    Nota che il comando vuole almeno due parametri: un argomento per
    indicare cosa si chiede al sistema di finestre, in questo caso la geometria della finestra, e un etichetta che identifichi la finestra
    stessa; per convenzione il primo toplevel (quello creato dal comando
    -della shell linux-) ha come nome ".".

    Ovviamente c'è molto di più e ti consiglio di imparare il tcl prima di
    tk (qui un tutorial buono, secondo me: https://www.tcl.tk/man/tcltutorial/html/tcltutorial.html) oppure- se
    non ti va- di usare uno degli innumerevoli wrapper per le TK nel tuo linguaggio preferito (ne esistono molti).

    Ciao!
    C.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Davide Prina@21:1/5 to Alessandro Rubini on Thu Aug 12 20:40:01 2021
    On 12/08/21 10:24, Alessandro Rubini wrote:

    La shell tk si chiama wish (windowing shell).

    ecco perché non trovato winfo... e io pensavo che la shell fosse tclsh

    Ciao
    Davide
    --
    I lati oscuri del secure boot: https://www.fsf.org/campaigns/secure-boot-vs-restricted-boot/whitepaper-web Petizione contro il secure boot: https://www.fsf.org/campaigns/secure-boot-vs-restricted-boot/statement GNU/Linux User: 302090: http://counter.li.org
    Non autorizzo la memorizzazione del mio indirizzo su outlook

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Davide Prina@21:1/5 to cage on Thu Aug 12 20:50:01 2021
    On 12/08/21 10:18, cage wrote:

    Ovviamente c'è molto di più e ti consiglio di imparare il tcl prima di
    tk (qui un tutorial buono, secondo me: https://www.tcl.tk/man/tcltutorial/html/tcltutorial.html)

    grazie :-)

    infatti io cercavo un tutorial per tcl e pensavo che quello trovato
    fosse quello di base...

    Ciao
    Davide
    --
    What happened in 2013 couldn't have happened without free software
    (He credited free software for his ability to help disclose the U.S. government's far-reaching surveillance projects).
    Edward Snowden

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From cage@21:1/5 to Davide Prina on Fri Aug 13 13:50:01 2021
    On Thu, Aug 12, 2021 at 08:43:18PM +0200, Davide Prina wrote:

    Ciao!


    grazie :-)

    Di nulla! Buon divertimento! :)

    Ciao!
    C.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From cage@21:1/5 to Davide Prina on Fri Aug 13 13:40:02 2021
    On Thu, Aug 12, 2021 at 08:46:33PM +0200, Davide Prina wrote:
    On Thu, Aug 12, 2021 at 10:24:13AM +0200, Alessandro Rubini wrote:

    Amo tcl/tk, mi spiace che sia passato di moda.

    Ma e' ancora vivo e vegeto per fortuna! :)

    io ho trovato questo che penso voglia dire che sia ancora vivo https://github.com/flightaware/Tcl-bounties

    ed è in preparazione la 8.7! https://www.tcl.tk/software/tcltk/8.7.html

    se sono disposti a pagare fino a 100K per migliorie vuol dire che è più che vivo.

    concordo!

    Ho cercato anche un IDE e ho trovato che era stato sviluppato Visual Tcl e a detta di molti semplificava ulteriormente l'uso di Tcl.

    [...]

    Purtroppo qui non ti posso più aiutare perché io uso il tcl in maniera
    molto particolare: faccio generare il codice da un altro codice che istruisce l'interfaccia grafica (TK) e recupera gli eventi che
    l'utente innesca (click, pressione dei tasti eccetera); in pratica è
    un modo per fornire una libreria per GUI ad un linguaggio che non ne
    ha una nella libreria standard. Sono un utente piuttosto singolare :)

    Segnalo anche il loro wiki: https://wiki.tcl-lang.org/

    Ciao!
    C.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Marco Bodrato@21:1/5 to All on Fri Aug 13 22:40:01 2021
    Ciao,

    Il 2021-08-12 10:24 Alessandro Rubini ha scritto:
    Allego un mio programmino della palla che rimbalza.

    Manca un po' di attrito quando non rimbalza e rotola ormai solo sul
    fondo...
    Ma è carino! Con l'impulso dato dal mouse... in poche righe!-)

    Äœis,
    m

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Davide Prina@21:1/5 to cage on Fri Aug 27 14:50:01 2021
    On 12/08/21 10:18, cage wrote:

    ti consiglio di imparare il tcl prima di
    tk (qui un tutorial buono, secondo me: https://www.tcl.tk/man/tcltutorial/html/tcltutorial.html)

    in realtà questo tutorial è stato fatto per versioni Tcl precedenti di quella presente ora in Debian.

    Probabilmente questo è più aggiornato: https://wiki.tcl-lang.org/page/Tcl+Tutorial+Index

    Ciao
    Davide
    --
    What happened in 2013 couldn't have happened without free software
    (He credited free software for his ability to help disclose the U.S. government's far-reaching surveillance projects).
    Edward Snowden

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From cage@21:1/5 to Davide Prina on Tue Aug 31 22:00:01 2021
    On Fri, Aug 27, 2021 at 02:41:53PM +0200, Davide Prina wrote:

    Ciao!

    On 12/08/21 10:18, cage wrote:

    ti consiglio di imparare il tcl prima di
    tk (qui un tutorial buono, secondo me: https://www.tcl.tk/man/tcltutorial/html/tcltutorial.html)

    in realtà questo tutorial è stato fatto per versioni Tcl precedenti di
    quella presente ora in Debian.

    Probabilmente questo è più aggiornato: https://wiki.tcl-lang.org/page/Tcl+Tutorial+Index

    Grazie per la correzione!
    Ciao!
    C.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)