[GTK2/C] GtkWidget window activeren

Pagina: 1
Acties:

  • Choxo
  • Registratie: September 2003
  • Laatst online: 10-11-2023
Beste,

Ik heb in glade een interface gemaakt.
Deze bestaat uit verschillende windows.
D.m.v op een button te klikken, zou er een ander window tevoorschijn moeten komen.
Het probleem met deze code:

code:
1
2
3
4
void on_btn_selectie_clicked(GtkButton       *button, gpointer         user_data)
{
gtk_widget_show(wndw_select);
}


Is dat de wndw_select niet 'actief' is. (Er staan bijvoorbeeld checkboxen op,maar die kan ik niet aanpassen, en op buttons klikken gaat ook niet.)

Ik heb reeds geprobeerd met:

code:
1
2
3
4
5
void on_btn_selectie_clicked(GtkButton       *button, gpointer         user_data)
{
gtk_widget_show(wndw_select);
gtk_widget_set_focus(wndw_select);
}


Maar dit lukt ook niet.

Als ik
code:
1
2
3
4
5
void on_btn_selectie_clicked(GtkButton       *button, gpointer         user_data)
{
gtk_widget_show(wndw_select);
gtk_widget_hide(wndw_main);
}

doe, dan werkt dit window wel naar behoren.

De bovengenoemde functie staat in callbacks.c.
Daarin heb ik al deze windows zo gedeclareerd:
[code]
extern GtkWidget *wndw_main;
extern GtkWidget *wndw_select;
[code]

Mijn main.c ziet er als volgt uit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#ifdef HAVE_CONFIG_H
#  include <config.h>
#endif

#include <gtk/gtk.h>

#include "interface.h"
#include "support.h"
  GtkWidget *wndw_main;
  GtkWidget *wndw_select;
  GtkWidget *wndw_start;
  GtkWidget *wndw_draak;
  GtkWidget *wndw_dobbel;
  GtkWidget *wndw_puzzel;
  GtkWidget *wndw_race;
  GtkWidget *wndw_oplos;

int
main (int argc, char *argv[])
{
#ifdef ENABLE_NLS
  bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
  bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
  textdomain (GETTEXT_PACKAGE);
#endif

gtk_set_locale ();
gtk_init (&argc, &argv);

add_pixmap_directory (PACKAGE_DATA_DIR "/" PACKAGE "/pixmaps");

wndw_main = create_wndw_main ();
gtk_widget_show (wndw_main);
wndw_select = create_wndw_select ();

 [...]

gtk_main ();
return 0;
}


Ik heb reeds naar de header files gekeken, maar ik zie buiten get_focus() geen andere prototypes die me van dienst kunnen zijn. Ook google'n heeft me niet verder geholpen.

Dank bij voorbaat!

Ik werk op Ubuntu 7.10, en met Glade2.

×××


  • Choxo
  • Registratie: September 2003
  • Laatst online: 10-11-2023
kickje? :X

×××


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 30-11 00:17
Kan het zijn dat je iets met parents, modal of toplevel moet instellen?
When a toplevel container is shown, it is immediately realized and mapped; other shown widgets are realized and mapped when their toplevel container is realized and mapped.
Ik denk dat dit er iets mee te maken heeft

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • Choxo
  • Registratie: September 2003
  • Laatst online: 10-11-2023
Het was idd omdat modal op 'no' stond.

Dank je wel!

×××