//main.cpp:
//-----------
// Look at this modified code and pay attention to the order of
execution and call th the functions 
#include <gtkmm.h>
#include <iostream>

using namespace std;

int main(int argc, char* argv[])
{
        Gtk::Main kit(argc, argv);

        Gtk::Window window;
        Gtk::TextView textview;
        Gtk::Label label;

  string mylabeltext = "This is the first line of text in my gui
window.\n";

        window.set_default_size(600, 360);
        window.set_title("Gtkmm Programming - C++");
        window.set_position(Gtk::WIN_POS_CENTER);

        label.show();
        window.add(label);

        label.set_text(mylabeltext);

        mylabeltext += "About to run some routines...\n";

        label.set_text(mylabeltext);

        cout << "An initial line has been set to the gui window." <<
endl;
        // The Gui Window is displayed
  //==> YOURS      Gtk::Main::run(window);
  // Now my main program has performed some functions and wants to
update
        // the console and the gui window.
    cout << "Continuing after various functions and processing..." <<
endl;
    
    //A MODIFICATION HERE '+=' instead of yours '=''
        mylabeltext += "Showing the results of the functions and
processing.";
        label.set_text(mylabeltext);
 // AND NOW        
        Gtk::Main::run(window);
        return 0;
}
//----------------------------------------------
//code end

/////////////// Makefile ///////////////////
#Begin of Makefile
all:
        
        @echo " "
        @echo " 1- Compiling..."
        g++ -Wall -g -c *.cpp `pkg-config gtkmm-3.0 --cflags`
        
        @echo " "
        @echo " 2- Linking..."
        g++ -Wall -g *.o `pkg-config gtkmm-3.0 --libs` -o
Gtkmm34-popup-menu-test
        
        @echo " "
        @echo " DONE!!!";
#       @echo " "
        chmod +x Gtkmm34-popup-menu-test
        ls . -all

clean:
        rm *.o Gtkmm34-popup-menu-test

/////////////// Makefile ///////////////////
#End of Makefile

On Tue, 2013-07-30 at 12:02 -0400, L. D. James wrote:
> Can someone help to clear up the confusion of how to update a gui window
> without user input.
> 
> In other words, I would like to be able to output text to either or both
> the console our the gui window.
> 
> At present I can call the gui window (Window with a label for example)
> and output the initial text.  However, the process doesn't return to my
> c++ code until the window closes.  I'm trying to figure out how to (or
> where to have my code) for updating the gui screen before the gui window
> exits.
> 
> This is an example:
> 
> main.cpp:
> -----------
> #include <gtkmm.h>
> #include <iostream>
> 
> using namespace std;
> 
> int main(int argc, char* argv[])
> {
>       Gtk::Main kit(argc, argv);
> 
>       Gtk::Window window;
>       Gtk::TextView textview;
>       Gtk::Label label;
> 
>       string mylabeltext = "This is the first line of text in my gui
> window.\n";
> 
>       window.set_default_size(600, 360);
>       window.set_title("Gtkmm Programming - C++");
>       window.set_position(Gtk::WIN_POS_CENTER);
> 
>       label.show();
>       window.add(label);
> 
>       label.set_text(mylabeltext);
> 
>       mylabeltext += "About to run some routines...\n";
> 
>       label.set_text(mylabeltext);
> 
>       cout << "An initial line has been set to the gui window." << endl;
>       // The Gui Window is displayed
>       Gtk::Main::run(window);
>       // Now my main program has performed some functions and wants to
> update
>       // the console and the gui window.
>       cout << "Continuing after various functions and processing..." <<
> endl;
>       mylabeltext = "Showing the results of the functions and processing.";
>       label.set_text(mylabeltext);
> 
>       return 0;
> }
> ----------------------------------------------
> code end
> 
> The last line of text is never printed to the console until the gui is
> exited.  The last line of the mylabeltext is never printed to the label
> window.
> 
> What I'm trying to describe is how to keep the gtkmm window active while
> I run other routines in my c++ code and update the output to both the
> console and the gui window without closing the gui window to continue
> the c++ routines.
> 
> All the examples that I can find uses a button in the code.  I have
> tested and experimented enough that I can update the gui screen after a
> button is pressed.  However, I don't want to have to rely on the user
> for screen updates.  I hope to be able to run disc scans and other
> functions and periodically update the screen so that the user can see
> the progress and know that the program is still working and not dead.
> 
> Some of the resources that I have studied in my attempts at
> understanding this include:
> 
> https://developer.gnome.org/
> https://developer.gnome.org/gtkmm-tutorial/3.2/gtkmm-tutorial.html
> http://en.wikipedia.org/wiki/Gtkmm
> 
> -- L. James
> 


_______________________________________________
gtkmm-list mailing list
[email protected]
https://mail.gnome.org/mailman/listinfo/gtkmm-list

Reply via email to