我正在寻找重置选项在拖放下面的步骤,我想知道。在
导入wx
目标MyClass(wx.TextDropTarget): definit(自身,对象): wx.TextDropTarget.init(自身) 自我对象object=对象
def OnDropText(自身、x、y、数据): self.object.InsertStringItem(0,数据)
我的班(wx.框架)公司名称:
def __init__(self, parent, title):
super(Mywin, self).__init__(parent, title = title,size = (-1,300))
panel = wx.Panel(self)
self.index = 0
box = wx.BoxSizer(wx.HORIZONTAL) #horizontal line
languages = ['C', 'C++', 'Java', 'Python', 'Perl', 'JavaScript',
'PHP', 'VB.NET','C#']
self.lst1 = wx.ListCtrl(panel, -1, style = wx.LC_LIST)
self.lst2 = wx.ListCtrl(panel, -1, style = wx.LC_LIST)
self.display = wx.Button(panel,label="Reset",pos=(10,90))
#self.but = wx.Button(panel,-1,"Press")
for lang in languages:
self.lst1.InsertStringItem(0,lang)
#Completed--------
#self.lst2.InsertStringItem(0,lang)
dt = MyTarget(self.lst2)
self.lst2.SetDropTarget(dt)
wx.EVT_LIST_BEGIN_DRAG(self, self.lst1.GetId(), self.OnDragInit)
dt = MyTarget(self.lst1)
self.lst1.SetDropTarget(dt)
wx.EVT_LIST_BEGIN_DRAG(self, self.lst2.GetId(), self.OnDragInit1)
#Completed++++++++++
self.display.Bind(wx.EVT_BUTTON,self.onReset)
box.Add(self.lst1,1,wx.EXPAND)
box.Add(self.lst2, 1, wx.EXPAND)
box.Add(self.display,1,wx.EXPAND)
panel.SetSizer(box)
panel.Fit()
self.Centre()
self.Show(True)
def OnDragInit(self, event):
text = self.lst1.GetItemText(event.GetIndex())
tobj = wx.TextDataObject(text)
src = wx.DropSource(self.lst1)
src.SetData(tobj)
src.DoDragDrop(True)
self.lst1.DeleteItem(event.GetIndex())
def OnDragInit1(self,event):
text = self.lst2.GetItemText(event.GetIndex())
tobj = wx.TextDataObject(text)
src = wx.DropSource(self.lst2)
sit = src.SetData(tobj)
src.DoDragDrop(True)
self.lst2.DeleteItem(event.GetIndex())
"""def onReset(self,event):
languages = ['C', 'C++', 'Java', 'Python', 'Perl', 'JavaScript',
'PHP', 'VB.NET','C#']
self.lst1.SetData(languages)
#print("Hello")
pass"""
def onReset(self, event):
""""""
#||||||||Clearing the values||||||||
#-----------------------------------
self.lst1.ClearAll()
self.lst2.ClearAll()
languages = ['C', 'C++', 'Java', 'Python', 'Perl', 'JavaScript',
'PHP', 'VB.NET','C#']
self.lst1 = wx.ListCtrl(self, -1, style = wx.LC_LIST)
#self.but = wx.Button(panel,-1,"Press")
for lang in languages:
self.lst1.InsertStringItem(0,lang)
"""count = self.lst1.GetItemCount()
for row in range(count):
item = self.lst1.GetItem( itemIdx=row, col=0)
print (item.GetText())"""
#font.SetWeight(wx.FONTWEIGHT_BOLD)
# self.lst1.SetItemFont(self.index)
ex=wx.应用程序() Mywin(无,拖放演示) 前主回路()`
首先,请允许我列出您代码中的问题,而不是
Reset
问题。在你的缩进是一团混乱,这使你很难理解,因此许多能回答你问题的人,根本就不会费心。在
让人们更容易回答你的问题。在
您似乎在使用
wxPython
或文本书的非常旧的版本,许多项目都不推荐使用。在约束事件的方法是历史性的。在
InsertStringItem
已弃用。在在
MyTarget(wx.TextDropTarget)
中,init
的两个引用都应该是__init__
MyTarget(wx.TextDropTarget)
应返回True
languages
只能定义一次。在最后,在
OnReset
末尾使用self.Update
来重新显示列表。在检查您的代码与下面的代码之间的差异。在
相关问题 更多 >
编程相关推荐