Problem mit wx.ListCtrl

Plattformunabhängige GUIs mit wxWidgets.
Benutzeravatar
roschi
User
Beiträge: 225
Registriert: Samstag 29. März 2008, 18:58
Wohnort: Thueringen, Deutschland
Kontaktdaten:

Problem mit wx.ListCtrl

Beitragvon roschi » Mittwoch 14. Mai 2008, 16:36

hallo,

ich habe ein kleines problem mit wx.ListCtrl():

ich moechte, dass bei dem aktivieren eines eintrags eines wx.ListCtrl's der name des ausgewaehlten eintrags geprintet wird. das habe ich versucht so zu loesen:

Code: Alles auswählen

import wx

class FileList(wx.ListCtrl):
  def __init__(self, data, parent, pos, size):
    wx.ListCtrl.__init__(self, parent, -1, pos, size, style=wx.LC_REPORT | wx.LC_SINGLE_SEL | wx.LC_VIRTUAL)
    self.data = data
    self.SetItemCount(len(self.data))

    columns = ["File", "Size"]
    for col, text in enumerate(columns):
      self.InsertColumn(col, text)

    self.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.activated, self)

  def activated(self, event):
    print self.GetItemText(event.GetItem())

  def OnGetItemText(self, item, col):
    data = self.data[item]
    return data[col]

class Frame(wx.Frame):
  def __init__(self):
    wx.Frame.__init__(self, None, -1, "Window", size=(600,400))
    self.panel = wx.Panel(self, -1)
    self.path_display = wx.TextCtrl(self.panel, -1, pos=(0, 0), size=(300, 20), style=wx.TE_READONLY | wx.TE_RICH2)
    path = "/"
    self.path_display.write("Path: " + path)
    self.data = [("..", ""), ("Alpha", "80 Byte"), ("Beta", "7 MB")]
    self.filelist = FileList(self.data, self.panel, pos=(0, 20), size=(300, 300))

app = wx.PySimpleApp(False)
frame = Frame()
frame.Show()
app.MainLoop()


jetzt habe ich aber das problem, dass er mir beim printen einen fehler ausgibt, mit dem ich aber leider nichts anfangen kann.

ich hoffe ihr koennt mir weiterhelfen! :?

mfg
roschi
Benutzeravatar
martin101986
User
Beiträge: 85
Registriert: Montag 3. Dezember 2007, 19:15
Wohnort: Steiermark, Österreich

Beitragvon martin101986 » Mittwoch 14. Mai 2008, 16:58

Hallo roschi,

folgendes Lösungen:

Code: Alles auswählen

def activated(self, event):
    print event.GetText()


oder

Code: Alles auswählen

def activated(self, event):
    print self.GetItemText(event.GetIndex())


Ich glaub das hilft dir weiter.

Grüße
Martin
Benutzeravatar
roschi
User
Beiträge: 225
Registriert: Samstag 29. März 2008, 18:58
Wohnort: Thueringen, Deutschland
Kontaktdaten:

Beitragvon roschi » Mittwoch 14. Mai 2008, 17:04

hallo martin101986,

danke fuer die antwort!

es funktioniert.

mfg
roschi

PS: ich moechte mich nochmal ganz herzlich fuer die vielen hilfreichen tipps, die ich in diesem forum schon erhielt bedanken!

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder