[wxPython] Fenstertransparenz über GaugeCtrl regeln
Verfasst: Freitag 28. November 2008, 22:34
Mir war etwas langweilig und ich habe hier mal etwas mit dem GaugeCtrl von wxPython rumgespielt.
Allerdings hat das ganze noch nen kleinen Bug, und zwar geht der Transparenzwert nur bis 255, das GaugeCtrl hat aber eine länge von 370. Keine Zeit gehabt, das jetzt zu lösen, wenn jemand Lust hat wäre schön wenn er den Code hier postet.
Vielleicht kann das ganze ja einer mal gebrauchen
Getestet mit Windows XP, Python 2.5 und wxPython 2.8.
Allerdings hat das ganze noch nen kleinen Bug, und zwar geht der Transparenzwert nur bis 255, das GaugeCtrl hat aber eine länge von 370. Keine Zeit gehabt, das jetzt zu lösen, wenn jemand Lust hat wäre schön wenn er den Code hier postet.
Vielleicht kann das ganze ja einer mal gebrauchen

Getestet mit Windows XP, Python 2.5 und wxPython 2.8.
Code: Alles auswählen
# -*- coding: UTF-8 -*-
# Die Transparenz des Fensters lässt sich über das GaugeCtrl steuern
#
# Titel: GaugeCtrl Transparenz
# Version: 0.8.5
# Lizenz: GPL v3.0 <http://www.gnu.de/documents/gpl.de.html>
# Author: F. Pollmann
# Email: <fpollmann@cyclesoft.de>
# Datum: 28.11.2008 - 22:25 Uhr
import wx
class AppFrame(wx.Frame):
def __init__(self, parent, id, title):
wx.Frame.__init__(self, parent, id, title, wx.DefaultPosition, wx.Size(400, 300),
style = wx.MINIMIZE_BOX | wx.CLOSE_BOX | wx.SYSTEM_MENU | wx.CAPTION)
self.panel = wx.Panel(self, -1)
self.SetTransparent(255)
# Gauge erstellen
self.gauge = wx.Gauge(self.panel, -1, 50, (10, 50), (370, 25), style = wx.GA_SMOOTH )
self.gauge.SetRange(370)
self.gauge.SetValue(370)
# Mausevents abfangen
wx.EVT_LEFT_DOWN(self.gauge, self.OnLeftButtonDown)
wx.EVT_LEFT_UP(self.gauge, self.OnLeftButtonUp)
wx.EVT_MOTION(self.gauge, self.OnMotion)
# Variablen mit vorgegebenen Werten deklarieren
self.mouse_down = False
self.mouse_position = 0
''' Linke Maustaste wird gedrückt '''
def OnLeftButtonDown(self, event):
self.mouse_down = True
try:
self.mouse_position = event.GetX()
self.gauge.SetValue(self.mouse_position)
self.SetTransparent(event.GetX())
self.SetTitle(str(event.GetX()) + " %")
except:
pass
''' Linke Maustaste wird losgelassen '''
def OnLeftButtonUp(self, event):
self.mouse_down = False
''' Mauszeiger wird bewegt '''
def OnMotion(self, event):
if self.mouse_down == True:
try:
self.mouse_position = event.GetX()
self.gauge.SetValue(self.mouse_position)
self.SetTransparent(event.GetX())
self.SetTitle(str(event.GetX()) + " %")
except:
pass
class MyApp(wx.App):
def OnInit(self):
frame = AppFrame(None, -1, title)
frame.Show(True)
return True
# Hauptprogramm
if __name__ == '__main__':
title = 'Transparenz Test'
app = MyApp(False)
app.MainLoop()