Hallo,
wollte fragen wie man am besten in einer Grid Zelle HTML ausgibt und zwar nicht als Quellcode.
vielen Dank
Grid HTML Ausgeben
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hi FGB!FGB hat geschrieben:in einer Grid Zelle HTML ausgibt
Das ist die Idee:
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: iso-8859-1 -*-
import wx
import wx.grid
import wx.html
wx.SetDefaultPyEncoding("iso-8859-1")
class HtmlRenderer(wx.grid.PyGridCellRenderer):
def Draw(self, grid, attr, dc, rect, row, col, isSelected):
text = grid.GetCellValue(row, col)
renderer = wx.html.HtmlDCRenderer()
renderer.SetDC(dc, 0)
renderer.SetSize(rect[2], rect[3])
renderer.SetHtmlText(text)
renderer.Render(0, 0, [0])
class MyFrame(wx.Frame):
def __init__(
self, parent = None, id = -1, title = "Example", size = wx.Size(550, 420)
):
wx.Frame.__init__(self, parent, id, title, size = size)
panel = wx.Panel(self)
vbox_main = wx.BoxSizer(wx.VERTICAL)
panel.SetSizer(vbox_main)
grid = wx.grid.Grid(panel)
vbox_main.Add(grid, 1, wx.EXPAND | wx.ALL, 5)
grid.CreateGrid(10, 10)
grid.SetCellRenderer(0, 0, HtmlRenderer())
def main():
"""Testing"""
app = wx.PySimpleApp()
f = MyFrame()
f.Center()
f.Show()
app.MainLoop()
if __name__ == "__main__":
main()
mfg
Gerold

http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Es hat mir keine Ruhe gelassen... 
mfg
Gerold


Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: iso-8859-1 -*-
import wx
import wx.grid
import wx.html
wx.SetDefaultPyEncoding("iso-8859-1")
class HtmlRenderer(wx.grid.PyGridCellRenderer):
def Draw(self, grid, attr, dc, rect, row, col, isSelected):
text = grid.GetCellValue(row, col)
if isSelected:
bg = grid.GetSelectionBackground()
else:
bg = attr.GetBackgroundColour()
bmp = wx.EmptyBitmap(*rect[2:4])
mem_dc = wx.MemoryDC(bmp)
mem_dc.SetBackground(wx.Brush(bg, wx.SOLID))
mem_dc.Clear()
renderer = wx.html.HtmlDCRenderer()
renderer.SetDC(mem_dc, 0)
renderer.SetSize(*rect[2:4])
renderer.SetHtmlText(text)
renderer.Render(0, 0, [0])
mem_dc.SelectObject(wx.NullBitmap)
dc.DrawBitmap(bmp, 0, 0)
class MyFrame(wx.Frame):
def __init__(
self, parent = None, id = -1, title = "Example", size = wx.Size(550, 420)
):
wx.Frame.__init__(self, parent, id, title, size = size)
panel = wx.Panel(self)
vbox_main = wx.BoxSizer(wx.VERTICAL)
panel.SetSizer(vbox_main)
grid = wx.grid.Grid(panel)
vbox_main.Add(grid, 1, wx.EXPAND | wx.ALL, 5)
grid.CreateGrid(10, 10)
grid.SetRowSize(0, 100)
grid.SetColSize(0, 200)
grid.SetCellRenderer(0, 0, HtmlRenderer())
def main():
"""Testing"""
app = wx.PySimpleApp()
f = MyFrame()
f.Center()
f.Show()
app.MainLoop()
if __name__ == "__main__":
main()
Gerold

http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.