IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

GTK+ avec C & C++ Discussion :

fenêtre dans une fenêtre


Sujet :

GTK+ avec C & C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé

    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 72
    Par défaut fenêtre dans une fenêtre
    salut,
    j'aimerais bien afficher des fenêtres dans une fenêtre...
    çàd avoir des "surfaces" à l'intérieur d'une fenêtre principale, qui peuvent à leur tour contenir des widgets...
    j'avais essayé comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    41
    42
     
    GtkWidget *MainWindow, *ScWindow1, *ScWindow2;
     
    GtkWidget *ScTable;
     
    GtkWidget *label_scw1, *label_scw2;
    gchar *texte_scw1="texte de la première fenêtre";
    gchar *texte_scw2="texte de la deuxième fenêtre";
     
    //création de la fenêtre principale
    MainWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_window_set_title(GTK_WINDOW(MainWindow), "fenetre gtk+");
    gtk_window_set_default_size(GTK_WINDOW(MainWindow), 300, 300);
    gtk_window_set_position(GTK_WINDOW(MainWindow), GTK_WIN_POS_CENTER);
     
    //création de la table
    ScTable=gtk_table_new (4, 1, FALSE);
    gtk_container_add (GTK_CONTAINER (MainWindow), ScTable);
     
    //création des fenêtres secondaires
    ScWindow1 = gtk_window_new(GTK_WINDOW_POPUP);
    gtk_window_set_title(GTK_WINDOW(ScWindow1), "fenetre gtk+ principale");
    gtk_window_set_default_size(GTK_WINDOW(ScWindow1), 300, 50);
    gtk_table_attach(GTK_TABLE(ScTable), GTK_WIDGET(ScWindow1), 0, 1, 0, 2, GTK_FILL | GTK_EXPAND, GTK_FILL, 2, 2);
     
    ScWindow2 = gtk_window_new(GTK_WINDOW_POPUP);
    gtk_window_set_title(GTK_WINDOW(ScWindow2), "fenetre gtk+ secondaire");
    gtk_window_set_default_size(GTK_WINDOW(ScWindow1), 300, 50);
    gtk_table_attach(GTK_TABLE(ScTable), GTK_WIDGET(ScWindow2), 1, 0, 2, 4, GTK_FILL | GTK_EXPAND, GTK_FILL, 2, 2);
     
    //affichache des textes
    texte_scw1 = g_locale_to_utf8(texte_scw1, -1, NULL, NULL, NULL);
    label_scw1=gtk_label_new (texte_scw1);
    gtk_container_add (GTK_CONTAINER(ScWindow1), label_scw1);
     
    texte_scw2 = g_locale_to_utf8(texte_scw2, -1, NULL, NULL, NULL);
    label_scw2=gtk_label_new (texte_scw2);
    gtk_container_add (GTK_CONTAINER(ScWindow2), label_scw2);
     
    gtk_widget_show(MainWindow);
    gtk_widget_show_all(ScWindow1);
    gtk_widget_show_all(ScWindow2);
    mais ça ne marche pas, les 2 fenêtres popup se mettent n'importe ou sur l'écran...

    une idée?

  2. #2
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Nan pas possible avec GTK+. Tout ce que tu peux faire, c'est ajouter des conteneurs (GtkVBox, GtkHBox, GtkTable, etc...) pour ajouter d'autres widgets.
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  3. #3
    Membre confirmé

    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 72
    Par défaut
    et si je veux faire des "surfaces" dans une autre fenêtre c'est pas possible du tout? ou alors utiliser des surfaces SDL???

  4. #4
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Qu'appels-tu des surfaces ? Ce terme n'existe pas en GTK+ mais en SDL mais là il faut alors utiliser un widget spécial qui permet d'intégrer une surface vidéo SDL à GTK+, voir le fil suivant: http://www.developpez.net/forums/sho...hlight=gtk+sdl

    Vers la fin tu y trouvera une modification du widget car l'original ne fonctionnait pas ... à lire !
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  5. #5
    Membre confirmé

    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 72
    Par défaut
    merci beaucoup, je vais regarder ça...

    en fait, pour expliquer plus simplement:



    tu vois que chaque graphe est dans une fenêtre à lui, le tout dans une fenêtre principale scrollable.
    c'est exactement ce que je veux faire, mais je ne sais pas si c'est possible en gtk...

  6. #6
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Es-tu vraiment sûr que ce sont des fenêtres filles ? Bon c'est vrai que l'API Win32 permet de le faire, c'est ce qu'on appel des fenêtre MDI (Multiple Documents Interface). GTK+ gère également ceci si on peut dire mais pas de cette manière en effet, les fenêtre filles ou boîtes de dialogue s'affichent directement sur le bureau car la fenêtre parent ne peut contenir ses enfants !

    Il peut y avoir plusieures solutions à ce que tu veux faire...

    Soit, tu veux pouvoir afficher et cacher certaines parties, là tu peux utiliser dans des GtkVBox, plusieurs widgets de type GtkExpander. Tu peux bien sûr également mettre uniquement tes vues les unes en-dessous des autres directement dans ton GtkVBox (si tu met le 1° argument de la fonction de création de ce conteneur, chaque vue prendra la même place dont c'est un arrangement équitable entres elles).

    Tu peux aussi, si tu veux pouvoirles redimensionner en hauteur, utiliser des widgets de type GtkPaned.
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

Discussions similaires

  1. [XL-2007] Ouvrir une fenêtre dans une feuille EXCEL
    Par cedill23 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 22/02/2011, 17h33
  2. Réponses: 3
    Dernier message: 11/09/2010, 14h17
  3. Incorporer une fenêtre dans une autre
    Par fanxat dans le forum Windows Presentation Foundation
    Réponses: 4
    Dernier message: 07/04/2009, 20h40
  4. Ouvrir nouvelles fenêtres dans une fenêtre prédéfinis
    Par vizlebiz dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 04/10/2007, 14h50
  5. [VB6]Accéder à une fenêtre dans une application VB
    Par issaines dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 05/04/2006, 14h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo