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+ Discussion :

Creation d'une popup similaire à un bureau


Sujet :

GTK+

  1. #1
    Membre du Club
    Homme Profil pro
    chômeur
    Inscrit en
    Septembre 2015
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : chômeur

    Informations forums :
    Inscription : Septembre 2015
    Messages : 175
    Points : 62
    Points
    62
    Par défaut Creation d'une popup similaire à un bureau
    Bonjour,

    Je suis entrain de coder une popup qui fonctionne comme un Bureau :
    La popup sera collée sur le bureau: collante, en dessous de toutes les fenêtres, dans l'espace de travail courant .
    • Vue d'icones+autres fichiers d'un chemin modifiable ( ex: ~/Desktop )
    • menu de fichier(execute,open,etc)
    • reactivité des icones(click,move,select)
    • zone de texte(memo)
    • heure&date+meteo(avec icones)

    Os: Ubuntu xenial .
    Le code est GTK2 mais ça peut changer si GTK3 s'avére plus adapté .
    ( GTK2 a été choisi en premier car le programme va être testé sur des systemes par défault avec cette version . )
    ------------

    Etape 1=
    La fenêtre avec glade + le fichier python qui lance le fichier glade .
    Si vous avez mieux n'hésitez pas

    desktop_popup.glade
    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
    <?xml version="1.0" encoding="UTF-8"?>
    <!-- Generated with glade 3.18.3 -->
    <interface>
      <requires lib="gtk+" version="3.12"/>
      <object class="GtkWindow" id="window1">
        <property name="can_focus">False</property>
        <property name="type">popup</property>
        <property name="title" translatable="yes">Desktop Popup</property>
        <property name="window_position">center</property>
        <property name="type_hint">desktop</property>
        <property name="skip_taskbar_hint">True</property>
        <property name="skip_pager_hint">True</property>
        <property name="urgency_hint">True</property>
        <property name="has_resize_grip">True</property>
        <child>
          <object class="GtkIconView" id="iconview1">
            <property name="visible">True</property>
            <property name="can_focus">True</property>
            <property name="margin">6</property>
            <property name="selection_mode">multiple</property>
            <property name="columns">4</property>
            <property name="reorderable">True</property>
            <property name="tooltip_column">1</property>
            <property name="activate_on_single_click">True</property>
          </object>
        </child>
      </object>
    </interface>
    script éxecutable: py_launch_glade
    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
    #!/usr/bin/env python
    # py_launch_glade
     
    import pygtk
    pygtk.require('3.0')
    import gtk
     
    gladefile = "desktop_popup.glade"
    wTree = gtk.Builder()
    wTree.add_from_file(gladefile)
    window = wTree.get_object("GtkWindow")
     
     
    window.show_all()
    gtk.main()
    -----------------------
    ( Corrigé )
    l y a l'aperçu de glade mais je voudrais voir ce que ça donne une fois éxecuté , mais la fenêtre n'apparait pas , pourtant pas de message d'erreur (ctrl-c pour quitter):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $ ./py_launch_glade
    ^CTraceback (most recent call last):
      File "./py_launch_glade", line 18, in <module>
        gtk.main()
    KeyboardInterrupt
    $

  2. #2
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 291
    Points : 4 941
    Points
    4 941
    Billets dans le blog
    5
    Par défaut
    Bonjour.

    Je ne pratique pas du tout Gtk en Python mais ne manquerait-il pas un gtk.Widget.show_all (); sur l'objet représentant la fenêtre à afficher récupéré depuis ton fichier glade ?

  3. #3
    Membre du Club
    Homme Profil pro
    chômeur
    Inscrit en
    Septembre 2015
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : chômeur

    Informations forums :
    Inscription : Septembre 2015
    Messages : 175
    Points : 62
    Points
    62
    Par défaut
    En effet, correction ;
    maintenant glade pose probleme car il utlise la lib Gtk3.12 alors que j'ai la 3.18
    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
    $ ./py_launch_glade
    Traceback (most recent call last):
      File "./py_launch_glade", line 5, in <module>
        pygtk.require('3.0')
      File "/usr/lib/python2.7/dist-packages/pygtk.py", line 85, in require
        "required version '%s' not found on system" % version
    AssertionError: required version '3.0' not found on system
    $ dpkg -l libgtk-[0-9]* | grep ^i
    ii  libgtk-3-0:i386   3.18.9-1ubuntu3.1 i386         GTK+ graphical user interface library
    ii  libgtk-3-0-dbg    3.18.9-1ubuntu3.1 i386         GTK+ libraries and debugging symbols
    ii  libgtk-3-bin      3.18.9-1ubuntu3.1 i386         programs for the GTK+ graphical user interface library
    ii  libgtk-3-common   3.18.9-1ubuntu3.1 all          common files for the GTK+ graphical user interface library
    ii  libgtk-3-dev:i386 3.18.9-1ubuntu3.1 i386         development files for the GTK+ library
    ii  libgtk-3-doc      3.18.9-1ubuntu3.1 all          documentation for the GTK+ graphical user interface library
    $

  4. #4
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 291
    Points : 4 941
    Points
    4 941
    Billets dans le blog
    5
    Par défaut
    Lorsque tu utilises glade (l'application) tu peux configurer ton projet pour une version de Gtk donnée.

  5. #5
    Membre du Club
    Homme Profil pro
    chômeur
    Inscrit en
    Septembre 2015
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : chômeur

    Informations forums :
    Inscription : Septembre 2015
    Messages : 175
    Points : 62
    Points
    62
    Par défaut
    Je suis passé à Gtk3 pour l'amélioration de code pour vue d'icone:
    https://python-gtk-3-tutorial.readth...w.html#example

    Comment selectionner un dossier pour les icones au lieu de noms de fichier contrairement a l'exemple ?

  6. #6
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 291
    Points : 4 941
    Points
    4 941
    Billets dans le blog
    5
    Par défaut
    Si je comprends bien l'exemple ceux-ci ne sont pas des fichiers mais des icônes internes à la bibliothèque Gtk+. Leur nom respectif est contenu dans le tableau icons.

    Si tu désires charger des images perso. depuis un dossier il te faut utiliser d'autres fonctions de la bibliothèque GdkPixbuf (enfin son pendant en Py).

    En C on peut par exemple utiliser gdk_pixbuf_new_from_file (); ou une de ses dérivées pour charger une image depuis un dossier.

    Je ne suis pas sûr de bien répondre à ta question

  7. #7
    Membre du Club
    Homme Profil pro
    chômeur
    Inscrit en
    Septembre 2015
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : chômeur

    Informations forums :
    Inscription : Septembre 2015
    Messages : 175
    Points : 62
    Points
    62
    Par défaut
    Citation Envoyé par gerald3d Voir le message
    Je ne suis pas sûr de bien répondre à ta question
    Pas loin , en fait c'est tout le contenu du dossier "~/Desktop" que j'essaye d'afficher en une seule fois .
    Il y a une fonction pour ça ?

  8. #8
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 291
    Points : 4 941
    Points
    4 941
    Billets dans le blog
    5
    Par défaut
    A priori je dirai non. Maintenant un outil a peut être été développé spécialement en python pour le faire.

    Désolé de ne pouvoir t'aider plus.

  9. #9
    Membre du Club
    Homme Profil pro
    chômeur
    Inscrit en
    Septembre 2015
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : chômeur

    Informations forums :
    Inscription : Septembre 2015
    Messages : 175
    Points : 62
    Points
    62
    Par défaut
    Citation Envoyé par gerald3d Voir le message
    Maintenant un outil a peut être été développé spécialement en python pour le faire.
    Ben j'ai pas trouvé .

    Dans l'idée c'est pas compliqué , au pire ça doit être faisable mais comment ?

Discussions similaires

  1. creation d'une popup de modification
    Par replica dans le forum ASP.NET
    Réponses: 7
    Dernier message: 11/12/2008, 16h43
  2. [Access97] Creation d'une liste a bascule ou similaire
    Par Cyric dans le forum VBA Access
    Réponses: 2
    Dernier message: 25/07/2007, 11h09
  3. [FLASH MX 2004] Acceder aux variables d'une Popup
    Par freegreg dans le forum Flash
    Réponses: 3
    Dernier message: 05/05/2004, 21h13
  4. creation d'une raccourcie dans le menu demarre
    Par kenshi dans le forum MFC
    Réponses: 14
    Dernier message: 11/09/2003, 14h59
  5. Creation d une clee dans la registry en VC++
    Par rico27fr dans le forum MFC
    Réponses: 4
    Dernier message: 30/05/2002, 12h36

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