Newsgroup: it.comp.os.linux.development
Titolo: [QT]Intercomunicazione tra finestre

Ciao a tutti.
Sto provando a vedere se riesco a rimediare qualcosa con le QT.
Il mio problema e' questo:
Ho una finestra principale. Tramite un comando di menu faccio
apparire una seconda finestra in cui introduco alcuni valori.
Facendo click su OK nella finestra secondaria mi si deve
avviare una procedura che mi aggiorna dei valori sulla finestra
principale a seconda di cio' che ho introdotto in quella
secondaria.
La finestra secondaria l'ho fatta apparire ma, cio' che non
so e' come fare comunicare le due finestre.
Spero di essere stato chiaro.
Sulla documentazione delle QT purtroppo non ho trovato esempi di
questo tipo di problema.
Ciao e grazie.
-- 
Slaine Mc Roth
Linux User# 312607
Linux Machine# 198324

 secondaria.
Ma la finestra  secondaria è una finestra modale? Se  è una finestra
modale io risolverei la cosa in questo modo:
Per  prima cosa  devi creare  una serie  di metodi  che esportano  i
valori  che  dovranno  essere  letti, fatto  questo  nella  finestra
principale dovresti avere già ora un codice del tipo:
    if (finestra_modale->exec() == QDialog::Accepted) {
A questo  punto la  soluzione, banalmente, è  quella di  leggere dai
metodi precedentemente creati le variabili che ti interessano.
Il problema diventa  più complesso nel caso di  finestre non modali,
in questo caso la soluzione che  rispecchia di più la filosia "QT" è
quella di creare  un signal nella finestra di  dialogo secondaria, e
connetterlo  ad uno  slot della  finestra di  dialogo principale.  A
questo punto  nel signal  potrai passare una  struttura con  tutti i
dati che  ti interessano (o, perché  no, creare più signal,  uno per
ogni dato che può essere variato...  dipende molto da cosa devi fare
ovviamente).
Se  hai dei  dubbi sui  signal/slot ti  rimando alla  documentazione
delle QT.
Alternativamente  puoi  risolvere  con   tacconi  vari,  ad  esempio
potresti   passare  un   puntatore  della   finestra  principale   e
modificarla  direttamente  dalla  finestra  secondaria...  o  ancora
creare  un  puntatori di  una  funzione  della finestra  principale,
passarlo alla  secondaria, e usarlo poi  da questa (in effetti  è la
stessa  cosa  di  usare  i  signal  e  gli  slot,  visto  che  afaik
internamente  sono puntatori  di funzioni,  certo che  è molto  meno
elegante!).
-- 
Vanni Brutto
| email 
za...@nofesso.libero.it
      |
| irc nick Zanac    |   ICQ 18526701 |
--- remove nofesso to reply ----------
Zanac is the Author of QTParted:
http://qtparted.sourceforge.net

Il giorno Sun, 01 Jun 2003 18:19:01 +0000 lo sventurato Vanni Brutto 
ebbe l'ardire di pronunciare tali nefaste parole:
<cut>
Innanzi tutto grazie della risposta.
Cerchero', dall'alto della mia ignoranza in materia, di mettere in pratica
i tuoi consigli.
Resta inteso che se hai link a documentazione, howto o tutorial saranno
piu' che graditi.
Grazie ancora e ciao.


 secondaria.
Le finestre sono solo entitą stupide (in senso tecnico, non
dispregiativo) il cui compito č quello di mostrare cosa fa il
programma che gli sta sotto.
Dalla tua descrizione, direi che ti manca tutta la parte de ``il
programma che gli sta sotto''.
-- 
Windows Configuration
=====================
   No, there's nothing here about X, so be quiet.
                                                       (From Gnus info file)

 programma che gli sta sotto''.
Il programma che ci sta sotto c'e' e funziona, costruisco e visualizzo le
finestre e, se potessi avere questi benedetti valori che l'utente
inserisce nel dialogo secondario, riuscirei a calcolare i valori che devo
visualizzare nella finestra principale. Purtroppo non riesco a passare 
alcune stringhe prendendole da QLineEdit che stanno sulla finestra 
secondaria e metterle in variabili presenti sulla finestra principale.
Sicuramente e' un problema dovuto alla mia scarsissima conoscenza del C++,
mi sto documentando con utilizzo intensivo di Google e dei documenti che
riesco a trovare, ma la classica 'pulce nell'orecchio' potrebbe essere
utile se non decisiva.
Comunque grazie anche a te, ciao.


 visualizzare nella finestra principale. 
Chiedo scusa, avevo completamente frainteso il problema.

 Chiedo scusa, avevo completamente frainteso il problema.
Figurati, molto probabilmente mi sono spiegato male io.
Non pretendo la pappa fatta, ma se potessi trovare un esempio di codice
oppure la classica "pulce nell'orecchio", mi sarebbe molto utile.
Ciao
