Hallo!
Ich würde gerne einen Text erstellen, der fett wird wenn man ihn anklickt.
1. Versuch - Generic Button
Ich dachte schon, dass das gut klappen würde nachdem ich den 3D Effekt
der Buttons ausgestellt habe. Aber leider funktioniert der Zeilenumbruch
nicht wie erwartet mit \n.
2. Versuch - StyledTextCtrl
Hier bin ich drauf gekommen ein ReadOnly TextCtrl zu machen und dort
den Rahmen auszuschalten. Theoretisch würde es gehn mit wx.stc und
style = NO_BORDER. Dies ist aber bestimmt ziemlich `dirty`!?
3. Versuch - Automatisch BMPs erzeugen
Wenn ich aus einem Text automatisch BMPs erzeugen kann wäre auch
das theoretisch denkbar. Ist dies machbar bzw. sinnvoll?
4. Versuch - Statt fett(0|1) eine Checkbox
... aber wenn ich bei der Checkbox einen eigenen Font haben möchte
muss ich bestimmt einen StaticText daneben erstellen, oder?
Text <--> Event
Hi!
Der Fett wird, wenn man ihn anklickt, oder beim "MouseOver"?
Ich habe da was gefunden, dass zumindest für MouseOver funktioniert und vielleicht auch eine kleine Starthilfe ist:
Quellen:
http://www.zetcode.com/wxpython/customwidgets/
und
http://wiki.wxpython.org/AnotherTutorial?highlight=((AnotherTutorial))
meine Hilfen, ohne denen ich nicht arbeiten könnte.
Vielleicht gibt das ja einen kleinen Anstoß?
Viele Grüße und frohes Knobeln!
Der Fett wird, wenn man ihn anklickt, oder beim "MouseOver"?
Ich habe da was gefunden, dass zumindest für MouseOver funktioniert und vielleicht auch eine kleine Starthilfe ist:
Code: Alles auswählen
#!/usr/bin/python
# link.py
import wx
from wx.lib.stattext import GenStaticText
import webbrowser
class Link(GenStaticText):
def __init__(self, parent, id=-1, label='', pos=(-1, -1),
size=(-1, -1), style=0, name='Link', URL=''):
GenStaticText.__init__(self, parent, id, label, pos, size, style, name)
self.url = URL
self.font1 = wx.Font(9, wx.SWISS, wx.NORMAL, wx.BOLD, False, 'Arial')
self.font2 = wx.Font(9, wx.SWISS, wx.NORMAL, wx.LIGHT, False, 'Arial')
self.SetFont(self.font2)
self.SetForegroundColour('#0000ff')
self.Bind(wx.EVT_MOUSE_EVENTS, self.OnMouseEvent)
self.Bind(wx.EVT_MOTION, self.OnMouseEvent)
def OnMouseEvent(self, event):
if event.Moving():
self.SetCursor(wx.StockCursor(wx.CURSOR_HAND))
self.SetFont(self.font1)
elif event.LeftUp():
webbrowser.open_new(self.url)
else:
self.SetCursor(wx.NullCursor)
self.SetFont(self.font2)
event.Skip()
class HyperLink(wx.Frame):
def __init__(self, parent, id, title):
wx.Frame.__init__(self, parent, id, title, size=(400, 150))
panel = wx.Panel(self, -1)
Link(panel, -1, 'Zu diesem Thread im Forum',
pos=(10, 60), URL='http://www.python-forum.de/topic-16891.html')
motto = GenStaticText(panel, -1, 'Bitte mit der Maus drauf:',
pos=(10, 30))
motto.SetFont(wx.Font(9, wx.SWISS, wx.NORMAL, wx.BOLD, False,
'Verdana'))
motto2 = GenStaticText(panel, -1,
"http://www.zetcode.com/wxpython/customwidgets/")
self.Centre()
self.Show(True)
app = wx.App()
HyperLink(None, -1, 'A Hyperlink (from ZetCode.com)')
app.MainLoop()
http://www.zetcode.com/wxpython/customwidgets/
und
http://wiki.wxpython.org/AnotherTutorial?highlight=((AnotherTutorial))
meine Hilfen, ohne denen ich nicht arbeiten könnte.
Vielleicht gibt das ja einen kleinen Anstoß?
Viele Grüße und frohes Knobeln!
Gruß!
Danke!! Der kleine Anstoß ist ja eigentlich schon fastC4S3 hat geschrieben: Quellen:
http://www.zetcode.com/wxpython/customwidgets/
und
http://wiki.wxpython.org/AnotherTutorial?highlight=((AnotherTutorial))
meine Hilfen, ohne denen ich nicht arbeiten könnte.
Vielleicht gibt das ja einen kleinen Anstoß?
Viele Grüße und frohes Knobeln!
die Lösung
mfg ... Janux