Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
PHP - Problema con le funzioni php-gtk
Forum - PHP - Problema con le funzioni php-gtk

Avatar
merka (Normal User)
Newbie


Messaggi: 5
Iscritto: 06/01/2010

Segnala al moderatore
Postato alle 1:34
Mercoledì, 06/01/2010
Mi chiamo Matteo, uso il PHP da poco tempo, e sto incominciando ad sfruttare le GTK
il mio problema è il seguente:
all'attivazione della voce CLIENTI>NUOVO, vorrei visualizzare all'interno della finestra, attraverso la funzione nuovo_cliente, la scritta "inserisci nuovo cliente"

<?php
function nuovo_cliente($nuovo_cliente) {
///////////
}
function informazioni($informazioni) {
   $finestra_about = new GtkAboutDialog();
   $finestra_about->set_name("Gestionale");
   $finestra_about->set_version("1.0");
   $finestra_about->run();
   $finestra_about->destroy();
}
$finestra = new GtkWindow();
$finestra->set_title("Gestionale");
$finestra->set_default_size(800, 600);
$fixed = new GtkFixed();
$finestra->add($fixed);
$menu = new GtkMenuBar();
$menu->append($clienti = new GtkMenuItem("_Clienti"));
   $clienti->set_size_request(150, 25);
   $clienti->set_submenu($clienti_menu = new GtkMenu());
   $clienti_menu->append($nuovo_cliente = new GtkMenuItem("Nuovo"));
   $clienti_menu->append($modifica_cliente = new GtkMenuItem("Modifica"));
   $clienti_menu->append($elimina_cliente = new GtkMenuItem("Elimina"));
$menu->append($aiuto = new GtkMenuItem("_Aiuto"));
   $aiuto->set_size_request(150, 25);
   $aiuto->set_submenu($aiuto_menu = new GtkMenu());
   $aiuto_menu->append($informazioni = new GtkMenuItem("Informazioni"));
$nuovo_cliente->connect ("activate", "nuovo_cliente");
$informazioni->connect ("activate", "informazioni");
$fixed->put($menu, 0, 0);

// Vorrei visualizzare questa parte durante l'attivazione della funzione NUOVO_CLIENTE
        $titolo = new GtkLabel("Inserisci nuovo cliente");
        $fixed->put($titolo, 100, 60);
/////////////////////////////////////////////////////////////////////////////////////

$finestra->show_all();
gtk::main();
?>

Ringrazio anticipatamente chiunque possa essermi d'aiuto.

PM Quote
Avatar
Mte90 (Member)
Guru


Messaggi: 1144
Iscritto: 25/03/2008

Segnala al moderatore
Postato alle 16:46
Mercoledì, 06/01/2010
io ho fatto 3 programmi in php-gtk e sono tutti qui su pt e sul mio sito.
sono anche iltraduttore del portale europeo per l'italia.
non puoi aggiungere delle cose al volo dopo l'esecuzione di una funzione dopo aver concluso il rendering dell pagina. devi fare un hbox o vbox (dovrebbero chiamarsi così) e poi aggiungi le label all'interno di quelli.
io però non creo la grafica dallo script in se ma uso glade per fare la grafica così faccio prima.

PM Quote
Avatar
merka (Normal User)
Newbie


Messaggi: 5
Iscritto: 06/01/2010

Segnala al moderatore
Postato alle 17:33
Giovedì, 07/01/2010
Come contenitore ho infatti utilizzato GtkFixed.
Se escludo le funzioni, la label funziona perfettamente senza essere richiamata, in questo modo:

<?php
$finestra = new GtkWindow();
$finestra->set_title("Gestionale");
$finestra->set_default_size(800, 600);
$fixed = new GtkFixed();
$finestra->add($fixed);
$menu = new GtkMenuBar();
$menu->append($clienti = new GtkMenuItem("_Clienti"));
   $clienti->set_size_request(150, 25);
   $clienti->set_submenu($clienti_menu = new GtkMenu());
   $clienti_menu->append($nuovo_cliente = new GtkMenuItem("Nuovo"));
   $clienti_menu->append($modifica_cliente = new GtkMenuItem("Modifica"));
   $clienti_menu->append($elimina_cliente = new GtkMenuItem("Elimina"));
$menu->append($aiuto = new GtkMenuItem("_Aiuto"));
   $aiuto->set_size_request(150, 25);
   $aiuto->set_submenu($aiuto_menu = new GtkMenu());
   $aiuto_menu->append($informazioni = new GtkMenuItem("Informazioni"));
$nuovo_cliente->connect ("activate", "nuovo_cliente");
$informazioni->connect ("activate", "informazioni");
$fixed->put($menu, 0, 0);

   $titolo = new GtkLabel("Inserisci nuovo cliente");
   $fixed->put($titolo, 100, 60);

$finestra->show_all();
gtk::main();
?>

PM Quote
Avatar
merka (Normal User)
Newbie


Messaggi: 5
Iscritto: 06/01/2010

Segnala al moderatore
Postato alle 17:35
Giovedì, 07/01/2010
Io però voglio far funzionare la label e altri futuri oggetti alla chiamata della funzione medesima, e farli sparire e attivarne altri alla chiamata di un'altra funzione.
Grazie

PM Quote
Avatar
Mte90 (Member)
Guru


Messaggi: 1144
Iscritto: 25/03/2008

Segnala al moderatore
Postato alle 9:18
Lunedì, 11/01/2010
NO email per aiuti in privato grazie comunque se dici ke le label si sovrappongono imposta dei valori differenti per x e y in modo ke la sposti sotto.

PM Quote
Avatar
merka (Normal User)
Newbie


Messaggi: 5
Iscritto: 06/01/2010

Segnala al moderatore
Postato alle 19:21
Mercoledì, 13/01/2010
Le due label sarebbero i titoli di due pagine diverse, non voglio spostarne una sopra l'altra, ma farne sparire una con tutto il resto del contenuto futuro della pagina, mentre appare l'altra.
In pratica, quando dal menù, seleziono CLIENTI>NUOVO_CLIENTE, deve comparire la label "inserisci nuovo cliente" con il resto della pagina, mentre quando seleziono CLIENTI>MODIFICA_CLIENTE, deve comparire la label "modifica cliente" con il resto della sua pagina, mentre deve scomparire la pagina "nuovo_cliente", e viceversa.
Il problema è che invece rimane l'altra pagina e si sovrappone all'altra.

Grazie.

PM Quote
Avatar
Mte90 (Member)
Guru


Messaggi: 1144
Iscritto: 25/03/2008

Segnala al moderatore
Postato alle 22:13
Mercoledì, 13/01/2010
non mi sembra che ci sia la proprietà hidden però potresti fare che la pagina vecchia abbia dimensione uguali a 1 sia in altezza e dimensioni così dovresti aggirare il problema.

PM Quote