|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Mar 2009
Messaggi: 753
|
[C++] Qt - gestione stdin/stdout
Buon dì a tutti,
sto cercando un sistema per associare l'input e l'output standard ad un controllo del tipo dialog. Nel senso, vorrei che questa dialog si comporti come un terminale. Scopo è realizzare un client che abbia una unica dialog per inviare dei dati ad un server e riceverli. Utilizzando direttamente la shell non avevo problemi perchè mi bastava utilizzare i comandi di input e output standard, mentre ora con la gui mi trovo un attmo in difficoltà... spero di essere stato chiaro. Vi ringrazio. ![]() |
![]() |
![]() |
![]() |
#2 | |
Moderatore
Iscritto dal: Nov 2006
Messaggi: 21579
|
Quote:
praticamente ogni oggetto qt ha un insieme di "porte" atte a ricevere messaggi dall'esterno chiamate slot ogni oggetto ha anche la possibilità di emettere dei segnali volti a interagire con gli altri oggetti. quindi devi definire gli slot e i segnali che ti servono devi connettere i segnali con gli slot devi interagire con gli oggetti passando attraverso i segnali
__________________
"WS" (p280,cx750m,4790k+212evo,z97pro,4x8GB ddr3 1600c11,GTX760-DC2OC,MZ-7TE500, WD20EFRX) Desktop (three hundred,650gq,3800x+nh-u14s ,x570 arous elite,2x16GB ddr4 3200c16, rx5600xt pulse P5 1TB)+NB: Lenovo p53 i7-9750H,64GB DDR4,2x1TB SSD, T1000 |
|
![]() |
![]() |
![]() |
#3 | |
Senior Member
Iscritto dal: Mar 2009
Messaggi: 753
|
Quote:
Per gestire I/O multiplexing utilizzavo select() in Linux, non ho ancora guardato ma dovrei poterlo usare ancora, forse c'è anche una classe che lo fa... siccome su questo "terminale" dovranno essere dati una serie di comandi... come posso fare secondo te a fare in modo che alla pressione del tasto invio sia solo l'ultima riga ad essere inviata all'host remoto? Perchè utilizzando in modo standard il controllo PlainText ad esempio, mi invierebbe tutto (anche i dati precedenti)... è bene usare un buffer con un file descriptor? Però non saprei come... nel senso, l'utente dovrebbe anche poter vedere quello che scrive.... non mi sembra di aver visto esempi di questo tipo purtroppo... un esempio mi basterebbe per capire... Grazie. |
|
![]() |
![]() |
![]() |
#4 | |
Moderatore
Iscritto dal: Nov 2006
Messaggi: 21579
|
Quote:
puoi scriverti i tuoi segnali e i tuoi slot quindi puoi decidere cosa inviare direttamente scrivendo la funzione
__________________
"WS" (p280,cx750m,4790k+212evo,z97pro,4x8GB ddr3 1600c11,GTX760-DC2OC,MZ-7TE500, WD20EFRX) Desktop (three hundred,650gq,3800x+nh-u14s ,x570 arous elite,2x16GB ddr4 3200c16, rx5600xt pulse P5 1TB)+NB: Lenovo p53 i7-9750H,64GB DDR4,2x1TB SSD, T1000 |
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Mar 2009
Messaggi: 753
|
ma va perchè?
quello che mi verrebbe spontaneo fare è avere i due fd, uno associato al socket l'altro a questo punto associato ad un buffer.... il punto è... come posso far visualizzare allo stesso tempo ciò che viene scritto sulla dialog e inserirlo nel buffer..... è probabile anche che sia una cosa banale... ma non mi viene in mente come fare.... accipicchia ![]() |
![]() |
![]() |
![]() |
#6 | |
Moderatore
Iscritto dal: Nov 2006
Messaggi: 21579
|
Quote:
oppure guarda un qtextedit più specifico non so, non ho ben capito cosa devi fare
__________________
"WS" (p280,cx750m,4790k+212evo,z97pro,4x8GB ddr3 1600c11,GTX760-DC2OC,MZ-7TE500, WD20EFRX) Desktop (three hundred,650gq,3800x+nh-u14s ,x570 arous elite,2x16GB ddr4 3200c16, rx5600xt pulse P5 1TB)+NB: Lenovo p53 i7-9750H,64GB DDR4,2x1TB SSD, T1000 |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 14:09.