Terminal innerhalb GTKmm



  • Hallo

    Ich habe erst vor kurzem C++ angefangen und bin dabei mit GTKmm eine GUI zu Programmieren (mit Anjuta unter Ubuntu 9.04).
    Nun wollte ich fragen, ob es für GTKmm eine möglichkeit gibt ein Terminal (Konsole) in seine GUI zu implementieren. Denn ich möchte innerhalb der GUI ein Subprogramm starten, das man über ein Terminal steuert.
    Bei anjuta gibts ja so eine funktionalität ja auch (wie im Sscreenshot zu sehen: http://projects.gnome.org/anjuta/screenshots/anjuta-2.1.2-1.png).
    Bisher ist es so, dass ich das Subprogramm starte und die CLI in der Konsole erscheint, in der ich meine GUI gestartet hab.

    Für jede Hilfe wäre ich dankbar!
    Grüße
    Dennis



  • Soo, ich bin mal noch weiter gekommen.
    Es gibt eine C++ VTE Terminal implementierung (VTEmm).
    Ich habe es geschafft sie einzubetten.

    Für alle die es interessiert:
    Zuerst libvtemm runterladen und installieren http://wips.pl/~kudi/
    In meinem Programm hab ich es dann folgendermaßen eingebunden (nach dem Beispiel von der tar; unvollständiger auszug):

    #include <libvtemm/terminal.h>
    #include <libvtemm/init.h>
    
    Gnome::Vte::Terminal* m_term;    // Das Terminal
    Gtk::VBox* h_table;              // die VBox in der das Terminal eingebettet wird
    
    m_term = Gtk::manage(new Gnome::Vte::Terminal());
    Gnome::Vte::init();
    std::vector<std::string> nil;
    nil.push_back(std::string());
    std::string command("sh");
    m_term->set_size(25, 25);
    pid_t terminalID;
    terminalID = m_term->fork_command(command, nil, nil, std::string(), false, false, false);
    h_table->add(*dynamic_cast<Gtk::Widget*>(m_term));
    m_term->show();
    

    Die Frage ist jetzt nur, wie bekomme ich mein subprogramm dazu, seine Ausgabe in meinem VTE Terminal zu posten und nicht in das Terminal von meinem Hauptprogramm...

    Vielleicht kann mir da einer weiterhelfen 😞
    Wäre wirklich klasse!

    Gruß
    Dennis


Log in to reply