Profilo di nuzzopippo

Nome nuzzopippo
Indirizzo email nuzzopippo@gmail.com
AvatarAvatar utenti
Messaggi27
Firma forum
Fatti non foste a viver come bruti...
  • Re: IMMAGINI
    Forum >> Principianti
    Vorrei mettere un'immagine come sfondo della schermata, una sorta di filigrana magari, oppure in un angolo.
    Ciao
    Allora, ho atteso di avere un un po' di tempo per poter fare un esempio, l'ho fatto in due passi, nel primo (file example_01.py) è mirato all'inserimento di una immagine di background ad una finestra.
    Tale processo può essere fatto in vari modi, più o meno avanzati, ho scelto il più semplice : assegnare una immagine ad una label posizionata con il gestore di geometria "place" ed istruita ad occupare il 100% dello oggetto contenitore (un sub-classamento di Tkinter.Tk(), ovviamente il frame della finestra).
    Più degli accorgimenti, tipo ridimensionamento della finestra alla dimensione immagine, che diventa la dimensione minima della finestra, centratura sullo schermo, etc., piccole utilità che potrebbero servire, l'immagine viene scalata alle dimensioni finestra in caso di variazione.
    Il tutto è commentato.

    Nel secondo esempio ho simulato una finestra di login, con i controlli minimi necessari, due label, due entry e due pulsanti, separato per mostrarTi l'evoluzione del discorso e mettere l'accento sulla trasparenza dello sfondo delle label, impossibile in sistemi linux (unici che uso) ma possibile in ambienti windows che suppongo di Tuo utilizzo e che ho preimpostato, le istruzioni relative sono all'interno di example_02.py.
    In caso di utilizzo di sistemi Mac, le istruzioni sarebbero diverse, per linux bisognerebbe mettere da parte le label ed utilizzare i canvas.
    Qualora ti occorra "vedere" come inserire icone in bottoni e voci di menu, fai sapere, molto tempo fa ho messo in rete un esempio (neanche commentato), se ti serve lo trovo e te lo indico.
    il codice è nei files allegati al post

    Edit dimenticavo, modifica il pathname della immagine nell'istanza a MainWin

    --- Ultima modifica di nuzzopippo in data 2021-02-27 09:39:32 ---
    Fatti non foste a viver come bruti...
  • Re: Da menù a programma
    Forum >> Principianti
    Ciao a tutti, sono alle primissime armi con Python, proprio all'inizio.
    Pratico il Softair, e in club abbiamo l'onore di avere una persona speciale affetto da distrofia muscolare. Ci siamo inventati la figura dell'analista per coinvolgerlo nelle nostre simulazioni, e vorrei sviluppare un programma per renderlo veramente "operativo" al campo base....

    Detto questo mi servirebbe una grossa mano e tanta pazienza:

    ho creato un menù con dei bottoni; vorrei capire come si fa ad aprire un programma esterno a Python, tipo Access o Excel, cliccando sul bottone corrispondente.
    Ciao Carlo

    Suppongo che l'intenzione sia di aprire un file con l'applicazione predefinita nel sistema, giusto? Se è così circa un anno fa, in un altro forum, ho aperto questa discussione, i suggerimenti che mi sono stati dati erano efficaci, leggila, Ti sarà utile.

    Riguardo a "come" aprirla, suppongo che Ti stia utilizzando il framework tkinter, si utilizzano gli eventi con associate funzioni di callback, in gergo si definisce "binding", esistono parecchi esempi in rete.

    Purtroppo, la programmazione di interfacce grafiche è un argomento già avanzato, difficile per gli iniziandi, sono prevedibili difficoltà.




    Ho avuto un nipote affetto da distrofia muscolare e ricordo con dolore il non essere riuscito a trovare il modo di fargli comandare un computer tramite voce (era molti anni fa, la tecnologia molto più limitata) se hai problemi fatti sentire, non sono molto esperto ed ho anche poco tempo ma, se potrò, cercherò di darVi una mano.

    Ciao

    Fatti non foste a viver come bruti...
  • Re: Creazione di una label dinamica in una gui
    Forum >> Programmazione Python >> GUI
    Adesso volevo costruire una classe che in corrispondenza di ogni Label ,per esempio A1, ho un entry , che di volta in volta viene compilato automaticamente dal dato proveniente da un multimetro (HP/Agilent E1412A 6 1/2 cifre MULTIMETRO)) connesso via seriale.
    Mi rincresce, non ho mai avuto motivo per interessarmi di programmare interfacce seriali, e non conosco il Tuo dispositivo (ed il Tuo eventuale codice) quindi non ho suggerimenti validi da dare, auguro l'intervento di utenti con cognizioni in merito.




    Da un punto di vista generico, credo che il Tuo quesito si presti bene alla implementazione del pattern observer, in tal senso è interessante la libreria pypubsub, che conosco poco ma della quale ho visto interessante esempio di sincronizzazione nel libro sulle wx di @RicPol, penso possa essere utilizzata efficacemente per la Tua problematica.

    Riguardo, poi, gli aspetti implementativi spiccioli, probabilmente lo sai già ma tieni presente che il mainloop di tkinter è un processo bloccante, pertanto i processi di interfacciamento dovranno essere invocati dall'interno di tale loop ... se poi sia opportuno utilizzare processi di I/O asincrono ovvero da thread dipende un po' dalla strutturazione applicativa da Te impostata. Riguardo thread/tkinter tempo fa partecipai in un altro forum ad una discussione che potrebbe esserTi interessante, Ti invito a Leggerla, penso che punti di contatto con ciò che a Te servirebbe potrebbe averli.




    Ciao

    Fatti non foste a viver come bruti...
  • Re: Creazione di una label dinamica in una gui
    Forum >> Programmazione Python >> GUI
    Chiedo troppo se mi dai due righe sullo pseudocodice da usare?
    Questa Tua richiesta mi lascia un pochino perplesso ...




    tipicamente, un metodo possibile sarebbe un qualcosa del genere :

    siano "index" e "vector" due variabili di istanza della classe che gestisce la la label "lbl_dida" e sia "reset_dida(self)" il metodo di callback che effettua l'aggiornamento della label, sarebbe qualcosa così :

       def reset_dida(self):
           self.index = self.index + 1 if self.index < len(self.vector) -1 else 0
           '''Impostazione della didascalia da mostrare a fianco dell'immagine.'''
           self.lbl_dida.configure(text=str(self.vector[self.index]))
    conosci la programmazione ad oggetti, vero?

    Ovviamente, il metodo di callback sarà invocato da un oggetto "cliccoso" (la label non lo è), potrebbe essere anche la finestra, in tal caso daremmo un bel

    self.bind('<Return>', self.reset_dida)
    Se può interessare, molto tempo fa mi son studiato varie possibilità di realizzazione di un controllo personalizzato ed in questa parte ho realizzato qualcosa che si avvicina alla Tua richiesta, anche se un po' più complesso, controlla, in vari modi, una rappresentazione di immagini e didascalie contenute in una lista di dizionari, vi è anche una casella di testo per immissione di un indice "a piacere" da visualizzare, guarda come è fatta, penso si avvicini al Tuo problema.

    Ciao.

    Fatti non foste a viver come bruti...
  • Re: Creazione di una label dinamica in una gui
    Forum >> Programmazione Python >> GUI
    Se ho capito bene, è una singola label da variare con il valore dell'elemento "corrente", giusto?
    Di per se, il discorso è semplice, definisci una variabile dedicata a contenere l'indice corrente, che incrementi ad ogni "return" premuto (badando che non superi "len(vettore) -1") ed aggiorni il testo della label con il contenuto del nuovo indice.
    La modalità di definizione per detta variabile dipende da come hai implementato la Tua "gui".


    --- Ultima modifica di nuzzopippo in data 2021-02-22 17:32:36 ---
    Fatti non foste a viver come bruti...
  • Re: Problemi nel lanciare script py usando VB6
    Forum >> Programmazione Python >> Scripting
    Ciao

    Ovviamente non so cosa dovrebbe fare la Tua connessione ma così come è impostato lo script python credo che dovrebbe aprirsi un attimo la finestra di CMD e subito chiudersi, prova ad inserire un print per vedere se hai ricevuto qualcosa e blocca la finestra, p.e. con un input, una cosa così nella parte finale:

    # Recalls scene A0
    s.sendall("ssrecall_ex scene_a 0\n".encode())
    
    # receive a message before closing socket
    ricv = s.recv(1500)
    
    # Closes socket
    s.close ()
    
    print(ricv.decode('ascii'), '\n')
    input('Premere INVIO per terminate')
    giusto per verificare se lo script viene eseguito e se la connessione viene effettuata.
    Potresti avere degli errori, in tal caso continueresti a vedere solo un attimo la finestra di CMD, e la decodifica in ascii del buffer ricevuto potrebbe non essere "giusta" ma più o meno il senso lo hai ...

    Per altro, giusto a titolo informativo, la versione "3.4.1" di python gira su XP 32 bit (non oltre quella però)




    Edit mi sono accorto solo ora i aver inserito "ricv =" allo invio dati invece che alla ricezione, corretto nel codice





    Scusate la distrazione.


    Ciao



    --- Ultima modifica di nuzzopippo in data 2021-02-17 13:51:54 ---
    Fatti non foste a viver come bruti...
  • Re: python o java
    Forum >> Principianti
    come scrivevo nel post precedente, quello che volevo realizzare e' un programma (sistema windows) facile da aggiornare e che si avvii con due click....
    Ho visto che in java creando il file jar con due click si apre il programma, in python ( sono piu' indietro di java ma si recupera facilmente ), non sono riuscito a creare un file pyc che si potesse avviare come il jar
    In Java, come in python, dipende un po' da cosa fa il "programma", non sempre è sufficiente uno jar, in ogni caso, per alcune prove su computer windows di colleghi (io utilizzo esclusivamente linux), ho lanciato senza alcuna difficoltà script python anche complessi con "clic" sul file di codice ... ma sono ben lontano dal poterTi dare spiegazioni in merito, non mi interesso ed uso windows da vent'anni.

    Ti suggerirei, se Ti interessa vedere un po' python in windows il blog di Poligneri, in particolare l'articolo "E adesso dove clicco", per chiarirTi sull'argomento ... per altro, il Poligneri ha scritto qualche libro, tra cui uno inerente l'affrontare python nel mondo windows che Ti suggerirei nel caso ti interessi l'argomento, trovo l'autore un ottimo divulgatore, oltre che "pythonista" molto capace.




    Ciao.

    Fatti non foste a viver come bruti...
  • Re: python o java
    Forum >> Principianti
    Ciao




    A mio parere, la questione che poni non ha risposta : tanto java quanto python sono dei linguaggi di programmazione "general porpouse", dalle ampie possibilità ... possibilità che bisogna conoscere per poter "fare".




    Ho programmato amatorialmente in java, e da un paio di anni sto cercando di apprendere python, mia opinione (da non professionista) è che i due linguaggi più o meno si equivalgono ed hanno numerose librerie a corredo, un po' per tutti gli usi prevedibili, in ogni caso entrambi i linguaggi richiedono uno studio "serio" per poterli utilizzare adeguatamente.




    Java è un linguaggio rigidamente ad oggetti, bisogna conoscere la OOP almeno un po' per poterlo usare, python è più elastico, supportando metologie imperative, funzionali o ad oggetti ma la cosa non semplifica in carenza di adeguata conoscenza, anzi può far "perdere il filo".

    Forse, java ha dalla sua una maggiore "uniformità" sui vari sistemi operativi, se i programmi non utilizzano chiamate particolari di "sistema" uno stesso jar può girare abbastanza bene su sistemi diversi, cosa più volte personalmente fatta per sistemi Linux/windows, sotto questo aspetto trovo python un pochino più limitante, ma poco, presentando vari moduli chiamate specifiche per diversi s.o., bisogna conoscere meglio il "target" dell'applicazione, ma, nuovamente, dipende da ciò che si fa, in linea di massima un generico script python è abbastanza "portabile".




    Suggerirei di utilizzare il linguaggio che conosci meglio per affrontare la stesura di una applicazione ... se, come fa sospettare il post, non possiedi conoscenze adeguate per detti linguaggi, utilizza un altro linguaggio che conosci meglio oppure studia (bene) quello che preferisci prima di impegnarti per realizzare una applicazione, programmare non è "facile", non si improvvisa.

    Fatti non foste a viver come bruti...
  • Re: Playsound
    Forum >> Principianti
    > suggerirei una lettura di questa pagina


    sì ma onestamente suggerirei di più la lettura del mio libro...
    Ne convengo, dato che a mia volta sto studiando l'altro Tuo libro posso tranquillamente dire con cognizione del merito che certamente vale la spesa (che poi non è che sia esosa).




    Non consigliare direttamente il libro è solo per l'evidente stato di "iniziando" dello OP, intanto ha potuto vedere qualcosa di scritto bene imho, se persevererà credo gli verrà naturale cercare qualcosa di meglio e ben fatto ... se mai mi mettessi ad utilizzare windows io, certamente, vi ricorrerei.

    Fatti non foste a viver come bruti...
  • Re: Playsound
    Forum >> Principianti
    Come da titolo non riesco ad usare playsound. Ho creato un ambiente virtuale come spiegato da pymike. Ho installato tramite pip playsound, bene ho scritto ...
    ModuleNotFoundError: No module named 'playsound'
    Ma il modulo playsound io l'ho installato come mai???
    Probabilmente dipende da "come" e "dove" lo hai installato, se lo hai installato nel venv, devi operare tramite il venv per poterlo usare, se lo hai installato a livello di "sistema" devi operare a tale livello.

    Puoi verificare dove risiede l'installazione con pip

    (p38c_v) NzP:~$ python -m pip list
    Package       Version
    ------------- -------
    numpy         1.19.1
    Pillow        7.2.0
    pip           20.2.4
    pkg-resources 0.0.0
    playsound     1.2.2
    setuptools    49.2.0
    six           1.15.0
    wheel         0.34.2
    wxPython      4.1.0
    
    dai il comando tanto a livello del virtual environment (come l'esempio sopra) tanto a livello di sistema principale, per verificare dove hai effettuato l'installazione e, quindi, regolarTi in merito.




    Nel caso Tu utilizzi sistemi windows (il mio esempio è in ambiente linux) e trovi difficoltà nella gestione degli ambienti virtuali, suggerirei una lettura di questa pagina (e magari delle altre associate).




    Ciao

    Fatti non foste a viver come bruti...