Krzysiek318k Temat założony przez niniejszego użytkownika |
[GTK+] Nie pokazuje się drugi przycisk » 2013-03-13 12:32:18 Witam, po skompilowaniu kodu i uruchomieniu programu wyświetla mi się tylko przycisk "zaloguj", a przycisk "opcje" już nie. Kod źródłowy programu: #include <gtk/gtk.h> int main( int argc, char * argv[] ) { GtkWidget * okno; GtkWidget * okno_opcji; GtkWidget * zaloguj_kontener; GtkWidget * zaloguj_przycisk; GtkWidget * opcje_kontener; GtkWidget * opcje_przycisk; gtk_init( & argc, & argv ); okno = gtk_window_new( GTK_WINDOW_TOPLEVEL ); gtk_window_set_default_size( GTK_WINDOW( okno ), 600, 500 ); gtk_window_set_position( GTK_WINDOW( okno ), GTK_WIN_POS_CENTER ); gtk_window_set_title( GTK_WINDOW( okno ), "NecraftLauncher" ); zaloguj_kontener = gtk_fixed_new(); gtk_container_add( GTK_CONTAINER( okno ), zaloguj_kontener ); opcje_kontener = gtk_fixed_new(); gtk_container_add( GTK_CONTAINER( okno ), opcje_kontener ); zaloguj_przycisk = gtk_toggle_button_new_with_label( "Zaloguj" ); gtk_widget_set_size_request( zaloguj_przycisk, 70, 35 ); gtk_fixed_put( GTK_FIXED( zaloguj_kontener ), zaloguj_przycisk, 500, 400 ); opcje_przycisk = gtk_toggle_button_new_with_label( "Opcje" ); gtk_widget_set_size_request( opcje_przycisk, 80, 40 ); gtk_fixed_put( GTK_FIXED( opcje_kontener ), opcje_przycisk, 300, 200 ); g_signal_connect( G_OBJECT( okno ), "destroy", gtk_main_quit, NULL ); gtk_widget_show_all( okno ); gtk_main(); return 0; } Error debuggera: (NecraftLauncher.exe:2792): Gtk-WARNING **: Attempting to add a widget with type GtkFixed to a GtkWindow, but as a GtkBin subclass a GtkWindow can only contain one widget at a time; it already contains a widget of type GtkFixed |
|
czosnek17 |
» 2013-03-13 19:44:03 Próbujesz umieścić 2 kontenery w oknie. Najpierw umieszczasz zaloguj_kontener, a potem opcje_kontener. W okno można wstawić tylko 1 kontener, więc 2 się nie wstawia i widzisz błąd. Ja jak coś piszę w GTK+, to zawsze robię główny kontener fixed, dodaję go do okna i w niego wszystko wstawiam. Kontener można wstawić do kontenera. Więc opcje_kontener = gtk_fixed_new(); gtk_container_add( GTK_CONTAINER( okno ), opcje_kontener );
zamień na opcje_kontener = gtk_fixed_new(); gtk_container_add( GTK_CONTAINER( zaloguj_kontener ), opcje_kontener );
i będzie działać. |
|
Krzysiek318k Temat założony przez niniejszego użytkownika |
» 2013-03-15 13:03:02 Dzięki, działa :)
A powiesz mi jak ustawić pozycje kontenera GtkEntry ? |
|
czosnek17 |
» 2013-03-15 18:58:37 GtkEntry, czyli chodzi o pole do wpisywania tekstu? Możesz ustawić od razu przy umieszczeniu w kontenerze, a potem funkcją gtk_fixed_move() np gtk_fixed_move( GTK_FIXED( kontener_fixed ), jakis_widget, 10, 90 );
|
|
Krzysiek318k Temat założony przez niniejszego użytkownika |
» 2013-03-16 13:01:11 Dzięki, nie wiedziałem, że gtk_entry można wstawić w kontener fixed. A powiesz mi jeszcze jak odczytać dane z gtk_entry do zmiennej ? |
|
m4tx |
» 2013-03-16 13:11:33 |
|
« 1 » |