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

Python Discussion :

Privosquid: Appel aux programmeurs expérimentés


Sujet :

Python

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2006
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 20
    Points : 16
    Points
    16
    Par défaut [Résolu] Privosquid: Appel aux programmeurs expérimentés
    Bonjour,

    J'ai mis au point le projet Privosquid http://www.privosquid.org : c'est un anti-pub,spywares +contrôle parental. Non non je ne viens pas ici faire de la pub, d'ailleurs privosquid est entièrement gratuit.
    Une interface écrite en python me permet de piloter privoxy, mais comme je suis un grand débutant, j'ai besoin d'aide pour ajouter une fonctionnalité toute simple: Ajouter dans le menu privosquid qui est dans la barre des tâches une coche de sélection permettant de savoir dans quel mode on est (liste noire ou blanche, mode normal).
    C'est sous wxpython, privosquid est open-source (le source python est ici: http://www.privosquid.org/sources/interface.zip )

    Merci à tous ceux qui pourront me venir en aide parceque là, je bute à cause de mon manque d'expérience.

    laurent Lefrançois

  2. #2
    Membre averti
    Avatar de Alain_72
    Inscrit en
    Août 2004
    Messages
    180
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 180
    Points : 342
    Points
    342
    Par défaut
    Je ne suis pas sûr de ce que tu veux, et je ne peux pas tester car je suis sous linux et que ton soft est réalisé pour win.
    Si tu veux voir quel item de menu est en cours, tu as la méthode de wx.Menu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AppendCheckItem(id, item, helpString = "")
    qui, utilisée à la place du classique AppendItem() fait apparaître une coche au bout du texte quand on l'a choisi.

  3. #3
    Membre à l'essai
    Inscrit en
    Janvier 2006
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 20
    Points : 16
    Points
    16
    Par défaut
    Merci, j'ai essayé mais hélas ça n'affiche rien !
    Voici un bout de code, si si, je suis débutant !

    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
    class MyTaskBarIcon(wx.TaskBarIcon):
    	TBMENU_BLACKLIST  = wx.NewId()
    	TBMENU_WHITELIST   = wx.NewId()
     
    def __init__(self, frame):
    	wx.TaskBarIcon.__init__(self)
    	self.frame = frame
    	icon = wx.Icon('privosquid.ico', wx.BITMAP_TYPE_ICO)
    	self.SetIcon(icon, "Privosquid")
    	self.Bind(wx.EVT_MENU, self.OnBLACKLIST, id = self.TBMENU_BLACKLIST)
    	self.Bind(wx.EVT_MENU, self.OnWHITELIST, id = self.TBMENU_WHITELIST)
     
     
    def CreatePopupMenu(self):
    	menu = wx.Menu()
    	menu.Append(self.TBMENU_BLACKLIST, "Liste Noire")
    	menu.AppendSeparator()
    	menu.Append(self.TBMENU_WHITELIST, "Liste Blanche")
    	menu.AppendSeparator()
    Balises [Code] rajoutées par Guigui_

  4. #4
    Membre averti
    Avatar de Alain_72
    Inscrit en
    Août 2004
    Messages
    180
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 180
    Points : 342
    Points
    342
    Par défaut
    Je t'ai écrit un petit exemple :

    Un click droit dans la fenêtre principale te fait apparaître un menu qui te propose soit de charger la TaskBarIcon, soit de la détruire.
    Un click droit sur l'icône de la TaskBarIcon fait apparaître un menu popup. Le click sur un item le coche et décoche celui de l'autre item et inversement.

    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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    #-*- coding: iso-8859-15 -*-
     
    import wx
     
    class MyTaskBarIcon(wx.TaskBarIcon):
        TBMENU_BLACKLIST = wx.NewId()
        TBMENU_WHITELIST = wx.NewId()
     
        def __init__(self, frame = None):
            wx.TaskBarIcon.__init__(self)
            self.frame = frame
            icon = wx.Icon('privosquid.ico', wx.BITMAP_TYPE_ICO)
            self.SetIcon(icon, "Privosquid")
            self.Bind(wx.EVT_MENU, self.OnBLACKLIST, id = self.TBMENU_BLACKLIST)
            self.Bind(wx.EVT_MENU, self.OnWHITELIST, id = self.TBMENU_WHITELIST)
            self.Bind(wx.EVT_TASKBAR_RIGHT_UP, self.CreateMenu)
            self.menu = wx.Menu()
            self.menu.AppendCheckItem(self.TBMENU_BLACKLIST, "Liste Noire")
            self.menu.AppendSeparator()
            self.menu.AppendCheckItem(self.TBMENU_WHITELIST, "Liste Blanche")
            self.menu.AppendSeparator()
     
        def CreateMenu(self, event):
            self.PopupMenu(self.menu)
     
        def OnBLACKLIST(self, event):
            if not self.menu.IsChecked(self.TBMENU_BLACKLIST):
                self.menu.Check(self.TBMENU_BLACKLIST, True)
                self.menu.Check(self.TBMENU_WHITELIST, False)
     
        def OnWHITELIST(self, event):
            if not self.menu.IsChecked(self.TBMENU_WHITELIST):
                self.menu.Check(self.TBMENU_WHITELIST, True)
                self.menu.Check(self.TBMENU_BLACKLIST, False)
     
    class MaFenetre(wx.Frame):
        MNU_1 = wx.NewId()
        MNU_2 = wx.NewId()
        def __init__(self, titre = "Sans titre"):
            wx.Frame.__init__(self, None,  -1, title = titre, size = wx.Size(500, 300))
            self.menu = wx.Menu()
            self.menu.Append(self.MNU_1, "Ajouter la TaskBar")
            self.menu.AppendSeparator()
            self.menu.Append(self.MNU_2, "Supprimer la TaskBar")
            self.task = False
            self.taskBar = None
     
            wx.EVT_RIGHT_UP(self, self.AfficheMenu)
            wx.EVT_MENU(self, self.MNU_1, self.ClickMenu)
            wx.EVT_MENU(self, self.MNU_2, self.ClickMenu)
     
        def  ClickMenu(self, event):
            choix = event.GetId()
            if choix == self.MNU_1 :
                if not self.task :
                    self.taskBar = MyTaskBarIcon()
                    self.task = True
            else:
                if self.task :
                    self.taskBar.Destroy()
                    self.taskBar = None
                    self.task = False
     
        def AfficheMenu(self, event):
            pos = event.GetPosition()
            self.PopupMenu(self.menu, pos)
     
    class MonApp(wx.App):
        def OnInit(self):
            fen = MaFenetre("Essai")
            fen.Show(True)
            self.SetTopWindow(fen)
            return True
     
    app = MonApp()
    app.MainLoop()
    J'espère que c'est bien ça que tu voulais...

  5. #5
    Membre à l'essai
    Inscrit en
    Janvier 2006
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 20
    Points : 16
    Points
    16
    Par défaut
    Formidable, c'est exactement ce qu'il me fallait !
    Je vais essayer de modifier mon programme ce soir, merci encore de contribuer à ce projet !


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Optimiser les paramètres MySQL - appel aux experts
    Par SuperCed dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 04/12/2006, 12h26
  2. Question aux programmeurs PHP indépendants
    Par Humandesigner dans le forum Langage
    Réponses: 1
    Dernier message: 01/05/2006, 14h01
  3. Appel aux fonctions d'une DLL externe ??
    Par Fbartolo dans le forum Access
    Réponses: 7
    Dernier message: 21/11/2005, 17h54
  4. Peut-on faire appel aux interruptions sous Windows ?
    Par lorenfar dans le forum Assembleur
    Réponses: 10
    Dernier message: 09/05/2005, 18h42

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