wxGrid Daten aus Listen
Verfasst: Montag 4. Februar 2008, 08:50
Hallo!
Folgender Code funktioniert problemlos:
Nun möchte ich die Daten (Listen) aber aus einer txt Datei laden. Ich habs so probiert bekomme aber immer unzufriedene Ergebnisse.
Wobei readline(s) auch nicht funzt, sowie das ganze in eine Liste umzuwandeln...Irgendwie werden immer alle Wörte in Buchstaben gesplittet...
Kann jemand helfen?
Liebe Grüsse
Stefanie
Folgender Code funktioniert problemlos:
Code: Alles auswählen
import wx
import wx.grid
data = [[65.0, 'HO13D22_R08d21', '20', '13', '36..48 HO13D22_R08d21', '...TGGTGGCTGGTCG...\n |||||||||||||\nATGGTGGCTGGTCGTAATGG']
,[55.0, 'HW06J24', '20', '11', '52..42 HW06J24', '...GCCACCACCAA...\n |||||||||||\nGCCACCACCAAAGTCAAATG']
,[55.0, 'HO14B24', '20', '11', '162..152 HO14B24', '...ACTCAATCCCG...\n |||||||||||\nCATGCAGGTACTCAATCCCG']
,[55.0, 'HO10M21', '20', '11', '52..42 HO10M21', '...GCCACCACCAA...\n |||||||||||\nGCCACCACCAAAGTCAAATG']
,[55.0, 'HO10D21_R06b22', '20', '11', '299..289 HO10D21_R06b22', '...GCCTTCAAGAT...\n |||||||||||\nGCTCATGCCTTCAAGATCCG']
,[55.0, 'HK04J17', '20', '11', '49..59 HK04J17', '...GTTTGGGTTGG...\n |||||||||||\nAGCCTGTTTGGGTTGGATGT']]
data.sort()
colLabels = ("% matching", "primer name", "primer length", "match length", "binding position", "sequence")
class GenericTable(wx.grid.PyGridTableBase):
def __init__(self, data, colLabels=None):
wx.grid.PyGridTableBase.__init__(self)
self.data = data
self.colLabels = colLabels
self.odd=wx.grid.GridCellAttr()
face = 'Courier'
self.odd.SetFont(wx.Font(10, wx.DEFAULT, wx.NORMAL, wx.NORMAL, False, face))
def GetNumberRows(self):
return len(self.data)
def GetNumberCols(self):
return len(self.data[0])
def GetColLabelValue(self, col):
if self.colLabels:
return self.colLabels[col]
def IsEmptyCell(self, row, col):
return False
def GetValue(self, row, col):
return self.data[row][col]
def SetValue(self, row, col, value):
pass
def GetAttr(self, row, col, kind):
attr = self.odd
attr.IncRef()
return attr
class SimpleGrid(wx.grid.Grid):
def __init__(self, parent):
wx.grid.Grid.__init__(self, parent, -1)
tableBase = GenericTable(data, colLabels)
self.SetTable(tableBase)
self.SetDefaultRowSize(55, True)
self.SetColSize(1, 200)
self.SetColSize(2, 100)
self.SetColSize(3, 100)
self.SetColSize(4, 250)
self.SetColSize(5, 450)
self.SetCellAlignment(1, 1, wx.CENTRE, wx.CENTRE)
class TestFrame(wx.Frame):
def __init__(self, parent):
wx.Frame.__init__(self, parent, -1, "A Grid",
size=(1280, 1024))
grid = SimpleGrid(self)
if __name__ == '__main__':
app = wx.PySimpleApp()
frame = TestFrame(None)
frame.Show(True)
app.MainLoop()
Code: Alles auswählen
data = open('liste.txt', 'r')
data = data.read()
print type(data), data
Kann jemand helfen?
Liebe Grüsse
Stefanie