slacky Skrevet 4. desember 2011 Del Skrevet 4. desember 2011 (endret) Heisann. Jeg jobber med å lage et enkelt DockBar-script for Windows (XP). Scriptet fungerer rimelig greit, men er en del småbugs og ting jeg erger meg litt over. Har problemer når jeg forsøker å flytte rundt på programmet, da slutter "buttons" å fungere som de skal. Klarte heller ikke finne ut hvordan/om det kan startes opp i toppen av skrivebordet, på midten. Da slipper jeg for såvidt å flytte det dit ved oppstart, og kan dermed fjerne den muligheten, igjen Alt fungerer så lenge jeg ikke flytter på programmet..:S Koden #!/usr/bin/python # -*- coding: utf-8 -*- import wx import wx.lib.buttons as buttons import subprocess class dockbar(wx.Frame): def __init__(self, parent, title): style = ( wx.CLIP_CHILDREN | wx.FRAME_NO_TASKBAR | wx.NO_BORDER | wx.FRAME_SHAPED ) #style = (wx.NO_BORDER | wx.FRAME_SHAPED | wx.CLIP_CHILDREN | wx.FRAME_NO_TASKBAR | wx.STAY_ON_TOP) wx.Frame.__init__(self, parent, title=title, size=(400,90), style = style) self.Bind(wx.EVT_KEY_UP, self.OnKeyDown) self.Bind(wx.EVT_MOTION, self.OnMouse) self._run() self.Centre() self.Show(True) def _run(self): panel = wx.Panel(self, size=(400,80)) panel.SetBackgroundColour((70,70,70)) # Firefox FFIcon = "dockbar/firefox.png" FFimg = wx.Image(FFIcon, wx.BITMAP_TYPE_ANY).ConvertToBitmap() self.firefox = buttons.GenBitmapToggleButton(panel, bitmap=FFimg, name="firefox", pos=(10, 10), size=(60,60), style=wx.NO_BORDER) self.Bind(wx.EVT_BUTTON, self.runFirefox, self.firefox) # Computer PcIcon = "dockbar/computer.png" PcIMG = wx.Image(PcIcon, wx.BITMAP_TYPE_ANY).ConvertToBitmap() self.MyPC = buttons.GenBitmapToggleButton(panel, bitmap=PcIMG, name="MyPC", pos=(80, 10), size=(60,60), style=wx.NO_BORDER) self.Bind(wx.EVT_BUTTON, self.runMyPC, self.MyPC) #--------Programs---------# def runFirefox(self, event): #Run file cmd = "C:\\Program Files\\Mozilla Firefox\\firefox.exe" subprocess.call([cmd]) self.firefox.Enable(True) def runMyPC(self, event): #Run file cmd = "C:\\WINDOWS\\explorer.exe" subprocess.call([cmd]) self.MyPC.Enable(True) #--------Programs---------# def OnKeyDown(self, event): """quit if user press q or Esc""" if event.GetKeyCode() == 27 or event.GetKeyCode() == ord('Q'): #27 is Esc self.Close(force=True) else: event.Skip() def OnMouse(self, event): """implement dragging""" if not event.Dragging(): self._dragPos = None return self.CaptureMouse() if not self._dragPos: self._dragPos = event.GetPosition() else: pos = event.GetPosition() displacement = self._dragPos - pos self.SetPosition( self.GetPosition() - displacement ) if __name__ == '__main__': app = wx.App() frame = dockbar(None, "Dockbar") app.MainLoop() Legger ved scriptet med de 2 ikonene som trengs..: dockbar.rar Endret 5. desember 2011 av warpie Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå