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

[Gtk+] String na nazwę widgetu

Ostatnio zmodyfikowano 2014-08-10 14:57
Autor Wiadomość
Lotherad
Temat założony przez niniejszego użytkownika
[Gtk+] String na nazwę widgetu
» 2014-08-07 19:40:14
Witam.

Próbuję wysłać nazwę widgetu po wcześniejszym nadaniu jej widgetowi, ale cokolwiek próbuję zrobić to kompilator wypluwa "undefined reference to nazwaFunkcji". Mógłby ktoś napisać jak to zrobić?

Próbuję usunąć widget za pomocą pobrania jego nazwy.


error: invalid cast from type 'std::string {aka std::basic_string<char>}' to type 'GTypeInstance* {aka _GTypeInstance*}'

C/C++
void foo( GtkWidget * widget )
{
    string sfoo;
    sfoo.c_str();
    sfoo = gtk_widget_get_name( widget );
    gtk_container_remove( GTK_CONTAINER( grid ), GTK_WIDGET( sfoo ) );
}
P-115181
kubawal
» 2014-08-07 19:45:36
Kod?
P-115182
kubawal
» 2014-08-07 20:34:43
C/C++
sfoo.c_str();
Co to niby ma robić?
P-115188
Lotherad
Temat założony przez niniejszego użytkownika
» 2014-08-07 20:42:55
Zmienione na

C/C++
void foo( GtkWidget * widget )
{
    const char * sfoo;
    sfoo = gtk_widget_get_name( widget );
    gtk_container_remove( GTK_CONTAINER( grid ), GTK_WIDGET( sfoo ) );
}

Crashuje.
P-115189
MrPoxipol
» 2014-08-07 21:38:29
Na której linii? Może widget jest NULLem.
P-115192
Lotherad
Temat założony przez niniejszego użytkownika
» 2014-08-07 22:17:28
C/C++
gtk_container_remove( GTK_CONTAINER( grid ), GTK_WIDGET( sfoo ) );

Widget nie jest NULLem ponieważ jest dodany do tego grida. Poza tym nie było by crasha tylko powiadomienie w konsoli.

Wiadomość z debuggera


foo(widget=0x14c1450)

A okienko z Windowsa obwinia libgobject-2.0-0.dll.
P-115197
1aam2am1
» 2014-08-07 23:25:13
Skąd bierzesz grid w gtk_container_remove(GTK_CONTAINER(grid), GTK_WIDGET(sfoo)); ?
P-115201
Lotherad
Temat założony przez niniejszego użytkownika
» 2014-08-07 23:33:12
To tylko kawałek kodu, nie całość.
P-115203
« 1 » 2
  Strona 1 z 2 Następna strona