Ich versuche herauszufinden, wie Sie den Status der einzelnen Kontrollkästchen innerhalb einer ultimatelistctrl erhalten. Ich muss auch in der Lage sein, alle Kästchen zu aktivieren oder zu deaktivieren.Holen Sie sich den Status der Kontrollkästchen in listctrl
Dies ist mein zweiter Versuch bei diesem Projekt, das erste hat keine Form von listctrl verwendet und, obwohl funktional, ist es ziemlich hässlich. Ich habe versucht, die gleichen Bindetechniken für die neue Version zu verwenden, aber sie scheinen hier nicht zu gelten. Irgendwelche Hilfe geschätzt, danke.
Zu Recht oder Unrecht, da dies eine neue Version ist, habe ich einen neuen Thread gestartet. Hier ist die vorherige: Previous question/answer
import sys
import wx
import wx.lib.agw.ultimatelistctrl as ULC
class MyFrame(wx.Frame):
def __init__(self, parent):
wx.Frame.__init__(self, parent, -1, "Checkbox grid based on UltimateListCtrl Demo", size=(600,300))
agwStyle = (ULC.ULC_HAS_VARIABLE_ROW_HEIGHT | wx.LC_REPORT | wx.LC_VRULES | wx.LC_HRULES | wx.LC_SINGLE_SEL)
self.mylist = mylist = ULC.UltimateListCtrl(self, wx.ID_ANY, agwStyle=agwStyle)
mylist.InsertColumn(0,"", width=100)
for col in range(1,25):
col_num=str(col-1)
if col==0:col_num=""
mylist.InsertColumn(col,col_num, width=20)
self.checkboxes = {}
self.boxes=[]
for day in range(7):
days=["Monday", "Sunday", "Saturday", "Friday", "Thursday", "Wednesday", "Tuesday"]
index = mylist.InsertStringItem(1, "" + days[day])
mylist.SetStringItem(index, 1, "")
for boxes in range(1,25):
for index in range(7):
mylist.SetStringItem(index, boxes, "")
checkBox = wx.CheckBox(mylist, wx.ID_ANY, "", wx.DefaultPosition, wx.DefaultSize, 0)
self.checkboxes[checkBox.GetId()] = index
mylist.SetItemWindow(index, boxes, checkBox)
self.boxes.append(self.checkboxes)
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(mylist, 1, wx.EXPAND)
self.SetSizer(sizer)
app = wx.App()
frame = MyFrame(None)
app.SetTopWindow(frame)
frame.Show()
app.MainLoop()
ausgezeichnet, dank Rolf. –