Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[SFML + GTK+] Praca na dwóch oknach (pętlach).

Ostatnio zmodyfikowano 2014-06-30 14:13
Autor Wiadomość
Schulze13
Temat założony przez niniejszego użytkownika
[SFML + GTK+] Praca na dwóch oknach (pętlach).
» 2014-06-22 15:58:11
Witam, chcę stworzyć program który będzie używał SFML'a do wyświetlania wydarzeń w programie i GTK+ do przybornika manipulującego wydarzeniami w programie. Niestety od początku pojawiły się problemy, ponieważ GTK uruchamia swoją pętlę która uniemożliwia pracę pętli głównej programu (sfml), jeśli pozbyć się
gtk_main();
 to z kolei okno GTK przestaje odpowiadać i działa jedynie okno SFML'a.

C/C++
#include <SFML/Graphics.hpp>
#include <gtk/gtk.h>

int main( int argc, char * argv[] )
{
    sf::RenderWindow window( sf::VideoMode( 200, 200 ), "SFML works!" );
    sf::CircleShape shape( 100.f );
    shape.setFillColor( sf::Color::Green );
   
    GtkWidget * okno;
    GtkWidget * kontener;
    GtkWidget * przycisk;
    gtk_init( & argc, & argv );
   
    okno = gtk_window_new( GTK_WINDOW_TOPLEVEL );
    gtk_window_set_default_size( GTK_WINDOW( okno ), 300, 200 );
    kontener = gtk_fixed_new();
    gtk_container_add( GTK_CONTAINER( okno ), kontener );
   
    przycisk = gtk_button_new_with_label( "Twój pierwszy przycisk" );
    gtk_widget_set_size_request( przycisk, 180, 35 );
    gtk_fixed_put( GTK_FIXED( kontener ), przycisk, 10, 10 );
    gtk_widget_show_all( okno );
   
    gtk_main();
   
    while( window.isOpen() )
    {
        sf::Event event;
        while( window.pollEvent( event ) )
        {
            if( event.type == sf::Event::Closed )
                 window.close();
           
        }
       
        window.clear();
        window.draw( shape );
        window.display();
        gtk_widget_show_all( okno );
    }
   
    return 0;
}

Wszystko niechlubnie ściągnięte z kursów i połączone.
P-112500
MrPoxipol
» 2014-06-22 17:47:31
Potrzebujesz drugiego wątku, ale prościej jest wbudować okno SFML jako DrawingArea GTK. Przykładowy kod: http://cpp0x.pl/forum/temat/​?id=11666 (zobacz jeszcze na ostatni post - strona 4.).
P-112513
Schulze13
Temat założony przez niniejszego użytkownika
» 2014-06-30 13:35:28
Ok, raczej wykorzystam to rozwiązanie. Ale temat pozostawiam otwarty ponieważ problem nie został rozwiązany i nsdal nie wiadomo jak operować na dwóch oknach
P-112972
pekfos
» 2014-06-30 14:01:23
Ale temat pozostawiam otwarty ponieważ problem nie został rozwiązany i nsdal nie wiadomo jak operować na dwóch oknach
Potrzebujesz drugiego wątku
P-112974
Monika90
» 2014-06-30 14:13:43
P-112977
« 1 »
  Strona 1 z 1