Gå til innhold

[Python] Problem med dockbar-script..


Anbefalte innlegg

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 av warpie
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...