Voici un exemple de mini-console : saisissez la commande
à exécuter puis appuyez sur le bouton, la sortie de la
commande s'affiche dans un Gtk.TreeView.
# include <gtkmm.h>
class MainWindow : public Gtk:: Window
{
private :
Gtk:: VBox * vbox;
Gtk:: HBox * hbox;
Gtk:: Entry * entry;
Gtk:: Button * button;
Gtk:: TextView * text_view;
protected :
void on_execute ()
{
std:: string std_out;
Glib:: spawn_command_line_sync (entry- > get_text (), & std_out, NULL , NULL );
text_view- > get_buffer ()- > set_text (std_out);
}
public :
MainWindow ()
{
this - > set_default_size (300 , 200 );
this - > set_title (" gtk.developpez.com " );
vbox = new Gtk:: VBox ();
this - > add (* vbox);
hbox = new Gtk:: HBox ();
vbox- > pack_start (* hbox, Gtk:: PACK_SHRINK);
entry = new Gtk:: Entry ();
hbox- > pack_start (* entry);
button = new Gtk:: Button (Gtk:: Stock:: EXECUTE);
hbox- > pack_start (* button, Gtk:: PACK_SHRINK);
button- > signal_clicked ().connect (sigc:: mem_fun (* this ,
& MainWindow:: on_execute));
text_view = new Gtk:: TextView ();
text_view- > set_editable (false );
text_view- > set_cursor_visible (false );
vbox- > pack_start (* text_view);
}
~ MainWindow ()
{
delete vbox;
delete hbox;
delete entry;
delete button;
delete text_view;
}
} ;
int main (int argc, char * * argv)
{
Gtk:: Main kit (argc, argv);
MainWindow win;
win.show_all ();
kit.run (win);
return 0 ;
}
|
|