gpt4 book ai didi

python - wxpython:将多个字符串从一个列表框插入到另一个列表框

转载 作者:太空宇宙 更新时间:2023-11-04 06:37:14 26 4
gpt4 key购买 nike

当我在 timezone1 列表框中单击 zone_list 的一个选项时,我想将该字符串插入 time_zones2 列表框中,如果之后我选择另一个选项,我想将第二个选项添加到第二行timezones2 列表框。然后,当我在 time_zone2 列表框中单击我之前所做的选择之一时,我想删除该选择。

这是我想做的:listbox1 单击一个选项->将该选项插入 listbox2listbox2 单击一个选项->从 listbox2 中删除该选项

看看我在下面做了什么:

import wx

from time import *

class MyFrame(wx.Frame):
def __init__(self, parent, id, title):
wx.Frame.__init__(self, parent, id, title, wx.DefaultPosition, (550, 350))

zone_list = ['CET', 'GMT', 'MSK', 'EST', 'PST', 'EDT']


panel = wx.Panel(self, -1)
self.time_zones = wx.ListBox(panel, -1, (10,100), (170, 130), zone_list, wx.LB_SINGLE)
self.time_zones.SetSelection(0)

self.time_zones2 = wx.ListBox(panel, -1, (10,200), (170, 400), '',wx.LB_SINGLE)

self.Bind(wx.EVT_LISTBOX, self.OnSelect)

def OnSelect(self, event):

index = event.GetSelection()
time_zone = self.time_zones.GetString(index)


self.time_zones2.Set(time_zone)

class MyApp(wx.App):
def OnInit(self):
frame = MyFrame(None, -1, 'listbox.py')
frame.Centre()
frame.Show(True)
return True

app = MyApp(0)
app.MainLoop()

最佳答案

我获取了您的代码并添加了您需要的内容。请记住,wx.ListBox.Set(items) 需要一个项目列表,因此当您向它传递单个字符串时,它会将字符串中的每个字符视为一个单独的项目。

import wx

from time import *

class MyFrame(wx.Frame):
def __init__(self, parent, id, title):
wx.Frame.__init__(self, parent, id, title, wx.DefaultPosition, (550, 350))
self.second_zones = []
zone_list = ['CET', 'GMT', 'MSK', 'EST', 'PST', 'EDT']


panel = wx.Panel(self, -1)
self.time_zones = wx.ListBox(panel, -1, (10,100), (170, 130), zone_list, wx.LB_SINGLE)
self.time_zones.SetSelection(0)

self.time_zones2 = wx.ListBox(panel, -1, (10,200), (170, 400), '',wx.LB_SINGLE)

self.Bind(wx.EVT_LISTBOX, self.OnSelectFirst, self.time_zones)
self.Bind(wx.EVT_LISTBOX, self.OnSelectSecond, self.time_zones2)


def OnSelectFirst(self, event):
index = event.GetSelection()
time_zone = str(self.time_zones.GetString(index))
self.second_zones.append(time_zone)
self.time_zones2.Set(self.second_zones)


def OnSelectSecond(self, event):
index = event.GetSelection()
time_zone = str(self.time_zones2.GetString(index))
self.second_zones.remove(time_zone)
self.time_zones2.Set(self.second_zones)


class MyApp(wx.App):
def OnInit(self):
frame = MyFrame(None, -1, 'listbox.py')
frame.Centre()
frame.Show(True)
return True

app = MyApp(0)
app.MainLoop()

关于python - wxpython:将多个字符串从一个列表框插入到另一个列表框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9027268/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com