0
ultimatelistctrl 내에서 각 확인란의 상태를 가져 오는 방법을 알아 내려고하고 있습니다. 또한 모든 상자를 확인하거나 선택을 취소 할 수 있어야합니다.listctrl에서 체크 상자 상태 가져 오기
이것은이 프로젝트에서 내 두 번째 시도입니다. 첫 번째는 listctrl의 어떤 형식도 사용하지 않았으며 기능적 임에도 불구하고 상당히 추함입니다. 나는 새로운 버전에서 같은 바인딩 기법을 사용하려고했지만, 여기서는 적용하지 않는 것 같다. 감사합니다. 감사합니다.
옳게든 잘못 되었든, 새 버전이므로 새 스레드를 시작했습니다. 여기에 이전의 하나입니다 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()
우수, 감사 롤프. –