Pietro Bruno Lancerotto
Profilo di
Nome | Pietro Bruno Lancerotto |
---|---|
Indirizzo email | [email protected] |
Avatar | |
Messaggi | 56 |
Firma forum | |
--
Bruno L. |
-
- 2024-08-31 16:58:48
- Re: Variazione sintassi da vers. 3.4 a 3.12
- Forum >> Principianti
msg = ['OUTCOME', ' Connessione con {0} stabilita'.format(self.svr)]
Funziona
Devo dire che questo lo posso capire
I := per risparmare una riga e qualche carattere proprio no
Rende meno immediata la comprensione del codice
Poi uno lo sa e va bene così
Ti ringrazio per il supporto
--
Bruno L.
-
- 2024-08-30 17:04:48
- Re: Variazione sintassi da vers. 3.4 a 3.12
- Forum >> Principianti
-
Pensando di aver capito che il tutto era dovuto ad una fantasiosa invenzione per risparmiare qualche carattere ho modificato così
#if (instance := getattr(cls, inst_field, None)) is None:
instance = getattr(cls, inst_field, None)
if instance is None:
Naturalmente oltrepassa il punto ma si ferma qui
msg = ['OUTCOME', f' Connessione con {self.svr} stabilita']
con questa indicazione
msg = ['OUTCOME', f' Connessione con {self.svr} stabilita']
^
SyntaxError: invalid syntax
Il cappelletto è in corrispondenza dell'apice a fine parola " stabilita "
Se avete qualche idea perchè non credo di riuscire ad arrivarci goooglando
--
Bruno L.
-
- 2024-08-30 16:34:39
- Re: Variazione sintassi da vers. 3.4 a 3.12
- Forum >> Principianti
- Hai valutato se non ti convenga avviare il pc con un dongle linux lite aggiornato?
No, e neanche ci penso
Se funziona così bene altrimenti non è di vitale importanza
--
Bruno L.
-
- 2024-08-30 15:52:47
- Re: Variazione sintassi da vers. 3.4 a 3.12
- Forum >> Principianti
- Pietro Bruno Lancerotto said @ 2024-08-30 15:36:58:Quel := che funziona su 3.12 non funziona su 3.4
Walrus Operator.
Trovato qui : https://www.programmareinpython.it/blog/python-38-le-novita-piu-importanti/
Quindi io dovrei rappezzare a ritroso questo pezzo
if (instance := getattr(cls, inst_field, None)) is None: instance = orig_new(cls) if hasattr(cls, "__init__"): cls.__init__(instance, *args, **kwargs) delattr(cls, "__init__") setattr(cls, inst_field, instance) return instance
Poi speriamo che sia l'unico inghippo
[NdCM: modificata formattazione]
--- Ultima modifica di ㎝ in data 2024-08-30 17:13:23 -----
Bruno L.
-
- 2024-08-30 15:36:58
- Variazione sintassi da vers. 3.4 a 3.12
- Forum >> Principianti
-
Dopo il lungo lavoro di cui a : http://www.python.it/forum/thread/6944/utilizzo-socket/?page=6#post-7078
perfettamente funzionante grazie all'aiuto ricevuto mi ritrovo con un problema di portatilità.
Per comodità di distribuzione il programma è stato "compilato" ed installato su vari PC
Il programma è un terminale da usare in abbinamento ad una RiceTrasmittente e quindi si usano i portatili in avanzo visto le situazioni abbastanza precarie dei servizi.
Sui vari 64 bit nessun problema.
Poi su un vecchio W7 32 bit ho optato per l'installazione di PYTHON ed utilizzo dei sorgenti direttamente; anche qui tutto OK
Ma siccome l'appetito vien mangiando ho riesumato un PC W-XP e vi ho installato PYTHON 3.4 che dalle mie ricerche sembra essere l'ultima versione utilizzabile su tale S.O.
Problema che appare mandando in esecuzione il tutto tramite un file Batch
==================
C:\PACKET\TERM_RCS\SOURCES>python.exe C:\PACKET\TERM_RCS\SOURCES\pkt_gui_rcs_support.py
Traceback (most recent call last):
File "C:\PACKET\TERM_RCS\SOURCES\pkt_gui_rcs_support.py", line 14, in <module> import pkt_gui_rcs
File "C:\PACKET\TERM_RCS\SOURCES\pkt_gui_rcs.py", line 14, in <module>from utility import Delivery
File "C:\PACKET\TERM_RCS\SOURCES\utility.py", line 14
if (instance := getattr(cls, inst_field, None)) is None:
^
SyntaxError: invalid syntax
============================
Quel := che funziona su 3.12 non funziona su 3.4
Nelle mie ricerche mi pare di aver capito che la sintassi sia camabiata dalla 3.8
Non ho però trovato una tabellina comparativa per poter fare almeno una prova
Grazie anticipato per ogni tipo di aiuto
--
Bruno L.
-
- 2024-05-13 17:53:40
- Re: Utilizzo Socket
- Forum >> Principianti
- Funziona
def update_controls(self): self.POSTAZIONE.configure(text=pkt_gui_rcs_support.PST)
La riga che riporto l'ho tolta perchè si riferisce al TITOLO della finestrella
Quello presente nel file ini riguarda questo
self.TEntryPostazione.configure(textvariable=self.PostName)
il PST contiene il nome della postazione
Avevo accrocchiato qualcosa inizialmente perchè al boot risultava vuoto e quindi dava errore nella generazione iniziale del file di log
Successivamente lo ho inserito nel file .ini cosi almeno un nome c'è.
Poi, anche se non c'è motivo, può essere modificato.
Funziona così come è per cui rimane così come è.
Quello che viene inserito in quella casella oltre ad apparire in tutti i messaggi è anche il nome del file di LOG
Anche stavolta ti "pago" con un grazie
--- Ultima modifica di Pietro Bruno Lancerotto in data 2024-05-13 17:56:12 -----
Bruno L.
-
- 2024-05-13 15:07:41
- Re: Utilizzo Socket
- Forum >> Principianti
- nuzzopippo said @ 2024-05-13 14:58:53:In ogni caso, il problema posto è stato superato?
No
Nel file pkt_gui_rcs.py ci sono queste 2 righe
textB1 = "Bottone 1"
textB2 = "Bottone 2"
Se le commento, alla riga
self.RadiobuttonNP.configure(text=textB1) #Radio Button n.1
anziche mostrare il testo letto dal file ini da errore
--- Ultima modifica di Pietro Bruno Lancerotto in data 2024-05-13 15:08:06 -----
Bruno L.
-
- 2024-05-13 13:28:32
- Re: Utilizzo Socket
- Forum >> Principianti
- nuzzopippo said @ 2024-05-13 08:40:33:Evitiamo per il momento di affrontare l'intera strutturazione (3 file? prima erano 2)
Il terzo è utility.py che hai realizzato Tu
C'è poi il quarto, e cioè Terminale.ini
Credo sia opportuno aggiornare il tutto allo status attuale per cui allego lo zip con tutto il malloppo
Nel file pkt_gui_rcs.py ho aggiunto questo per far funzionare il tutto
code <
textB1 = "Bottone 1"
textB2 = "Bottone 2" >
Se commentati si verifica errore perchè non "traslati" da ... support.py
Ho spostato la lettura del Terminale.ini s initialize come suggerito ma ho dovuto inserirci anche alcune parti che nel frattempo avevo aggiunto
per esempio :
code <
global serverName
global serverPort
>
Anche se non è presente il suondmodem il terminale si apre comunque riportando una serie di errori relativi al mancato collegamento
Ci leggiamo
--
Bruno L.
-
- 2024-05-12 14:13:29
- Re: Utilizzo Socket
- Forum >> Principianti
- nuzzopippo said @ 2024-05-12 11:46:18:Sinceramente, non ho ben capito cosa hai fatto, la natura del "problema" e "quando" il problema si presenta, leggere il traceback non sarebbe male.Se tento di eseguirla da IDE si ferma indicando un errore che casomai posso copiare enpostare
nuzzopippo said @ 2024-05-12 11:46:18:Comunque, riepiloghiamo il certo : hai bisogno di cambiare il testo del controllo ptk_gui_rcs.PAGINA.RadiobuttonNP
Dubbio corollario, essendo il target un radiobutton, che senso ha
cambiare il testo? è il "value" ciò che entrerebbe realmente in gioco
Esattamente per la riga sopra
Il motivo sulla domanda 2 è che se viene usato il terminale nella gara Maratona vanno bene i testi così come sono
Se usiamo il sistema in un altro tipo di gara ( SoapBox mi pare si chiamino; carretti lanciati in discesa ) i due testi andrebbero sostituiti con parole Partenza e Transito
nuzzopippo said @ 2024-05-12 11:46:18:Per poter cambiare il testo di un controllo, l'istanza alla classe PAGINA deve già essere inizializzata, così come devono già essere già caricate in memoria le variabili contenenti il testo, indipendentemente da dove siano collocate, domanda : la variazione del testo deve avvenire a oggetti già completamente inizializzati od in fase di caricamento?
Poi, c'è da considerare il contesto in cui avviene la modifica, è in ptk_gui_rcs o in ptk_gui_rcs_support?
Comincio dalla fine : i due testi da cambiare in ptk_gui_rcs, dove sono elencati tutti gli elementi dell'interfaccia
Le variabili sono inizializzate in fase si "boot" quando viene letto il file .ini
#**************************************
import tkinter as tk
import tkinter.ttk as ttk
from tkinter.constants import *
import os.path
import pkt_gui_rcs
from datetime import datetime
#import binascii
from utility import Chatterbox
terminale = None
def main(*args):
'''Main entry point for the application.'''
global root
root = tk.Tk()
# Creates a toplevel widget.
global _top1, _w1
_top1 = root
_w1 = pkt_gui_rcs.PAGINA(_top1)
global PST
global textB1
global textB2
global mexB1
global mexB2
f = open("Terminale.ini", "r")
serverName = (f.readline()).strip("\n")
serverPort = int(f.readline())
PST = (f.readline()).strip("\n")
textB1 = (f.readline()).strip("\n")
textB2 = (f.readline()).strip("\n")
mexB1 = (f.readline()).strip("\n")
mexB2 = (f.readline()).strip("\n")
f.close()
serverName = serverName.replace(" ", "")
PST = PST.replace(" ", "")
_w1.PostName.set(PST)
global oggi
Calendario()
Apertura = ("Avvio applicazione il " + oggi + "\n")
Salvataggio(Apertura)
_w1.TESTO_RX.add_text(Apertura)
global terminale
# create TCP socket
terminale = Chatterbox(serverName, serverPort)
# connect socket to remote server at (serverName, serverPort)
terminale.connect()
#*****************************
E qui termina la parte iniziale
Se pensi sia più semplice allego i 3 file + il file.ini
Grazie
--
Bruno L.
-
- 2024-05-12 10:49:53
- Re: Utilizzo Socket
- Forum >> Principianti
- nuzzopippo said @ 2024-03-04 19:27:38:Se mi è riuscito di essere utile ne sono contento ... comunque, testatelo bene il Vostro terminale.
Ciao
Eccomi ancora qui
In fase di test è emersa una richiesta circa la possibilità di modificare il messaggio dei Radiobutton con una variabile
Come scritto in precedenza ho aggiunto un file di configurazione che viene letto nella parte iniziale di pkt_gui_rcs_support
Ho aggiunto 4 righe che servivano ed ovviamente i testi utilizzati in pkt_gui_rcs_support funzionano
Le variabili sono global
Come previsto i 2 testi col nome dei bottoni in pkt_gui_rcs non funzionano
Il compilatore da errore e siferma
#self.RadiobuttonNP.configure(text=pkt_gui_rcs_support.textB1) #Radio Button n.1
self.RadiobuttonNP.configure(text='NON Partiti')
La prima riga è come "dovrebbe" essere nel mio immaginario
La seconda è quella originale
Ovviamente sono a chiederTi in che modo traslare le due variabili textB1 e textB2 da un modulo all'altro
I ringraziamenti sono scontati
--
Bruno L.