Oppure

Loading
06/01/10 0:34
merka
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.
aaa
06/01/10 15:46
Mte90
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.
aaa
07/01/10 16:33
merka
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();
?>
aaa
07/01/10 16:35
merka
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
aaa
11/01/10 8:18
Mte90
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.
aaa
13/01/10 18:21
merka
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.
aaa
13/01/10 21:13
Mte90
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.
aaa