wxpython - Erweitern vertikal Listensteuerung nicht horizontal
Frage
Ich habe eine ListCtrl, die eine Liste von Elementen für den Benutzer anzeigt auszuwählen. Dies funktioniert gut, außer dass, wenn die Abfrage nicht groß genug ist, um alle Einzelteile zu zeigen, ich will es mit einer vertikalen Scrollbalken nach unten zu erweitern, anstatt eine horizontale Bildlaufleiste verwenden, wie es auf der rechten Seite erweitert.
Die ListCtrl Schöpfung:
self.subjectList = wx.ListCtrl(self, self.ID_SUBJECT, style = wx.LC_LIST | wx.LC_SINGLE_SEL | wx.LC_VRULES)
Die Artikel werden eingefügt mit wx.ListItem:
item = wx.ListItem()
item.SetText(subject)
item.SetData(id)
item.SetWidth(200)
self.subjectList.InsertItem(item)
Lösung
Mit dem wxLC_REPORT Stil.
import wx
class Test(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None)
self.test = wx.ListCtrl(self, style = wx.LC_REPORT | wx.LC_NO_HEADER)
for i in range(5):
self.test.InsertColumn(i, 'Col %d' % (i + 1))
self.test.SetColumnWidth(i, 200)
for i in range(0, 100, 5):
index = self.test.InsertStringItem(self.test.GetItemCount(), "")
for j in range(5):
self.test.SetStringItem(index, j, str(i+j)*30)
self.Show()
app = wx.PySimpleApp()
app.TopWindow = Test()
app.MainLoop()
Andere Tipps
Versuchen Sie folgendes:
import wx
class Test(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None)
self.test = wx.ListCtrl(self, style = wx.LC_ICON | wx.LC_AUTOARRANGE)
for i in range(100):
self.test.InsertStringItem(self.test.GetItemCount(), str(i))
self.Show()
app = wx.PySimpleApp()
app.TopWindow = Test()
app.MainLoop()
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow