如何解决如何从带有复选框的下拉框中保存选定的输入?我的下拉框没问题,但复选框不起作用
嗨,我正在尝试运行基于 wx 的 GUI。我在下拉列表中创建了复选框。但是复选框不起作用。我希望复选框起作用并将选定的输入选项名称保存在某处。这是代码。使用这些选定的输入选项名称(一个或多个),我稍后将过滤一个大字符串。提前谢谢你:)
import wx
import wx.stc
from wx.lib.mixins.listctrl import CheckListCtrlMixin,ListCtrlAutoWidthMixin
class CheckListCtrl(wx.ListCtrl,CheckListCtrlMixin,ListCtrlAutoWidthMixin):
def __init__(self,parent):
wx.ListCtrl.__init__(self,parent,wx.ID_ANY,style=wx.LC_REPORT |
wx.SUNKEN_BORDER)
CheckListCtrlMixin.__init__(self)
ListCtrlAutoWidthMixin.__init__(self)
self.SetSize(-1,-1,50)
def OnCheckItem(self,index,flag):
item = self.GetItem(index)
if flag:
what = "checked"
else:
what = "unchecked"
print(f'{item.GetText()} - {what}')
class ListViewComboPopup(wx.ComboPopup):
def __init__(self):
wx.ComboPopup.__init__(self)
self.lc = None
def AddItem(self,txt):
self.lc.InsertItem(0,txt)
def Init(self):
self.value = -1
self.curitem = -1
def Create(self,parent):
self.lc = CheckListCtrl(parent)
self.lc.InsertColumn(0,'',width=90)
return True
def GetControl(self):
return self.lc
def OnPopup(self):
wx.ComboPopup.OnPopup(self)
def GetAdjustedSize(self,minWidth,prefheight,maxHeight):
return wx.ComboPopup.GetAdjustedSize(
self,110,maxHeight)
class MyForm(wx.Frame):
def __init__(self):
wx.Frame.__init__(self,None,title="Popup Menu Tutorial")
panel = wx.Panel(self)
comboCtrl = wx.ComboCtrl(panel,"Select filter")
popupCtrl = ListViewComboPopup()
comboCtrl.SetPopupControl(popupCtrl)
popupCtrl.AddItem("mango")
popupCtrl.AddItem("cat")
popupCtrl.AddItem("dog")
popupCtrl.AddItem("tiger")
popupCtrl.AddItem("three")
popupCtrl.AddItem("hat")
popupCtrl.AddItem("hot")
popupCtrl.AddItem("sweden")
popupCtrl.AddItem("kth")
解决方法
您可以使用pickle将它们保存为.txt文件中的变量:
pickle.dump(your_variable,open("path/to/your/file.txt","wb"))
并访问它们:
your_variable = pickle.load(open("path/to/your/file.txt","rb"))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。