如何改变combox下拉列表框中的显示内容

永爱果果 2020-01-04 11:38:39
用的是wxpython
我想手动更改下拉列表框的显示值,我看了一下文档,我觉得SetSelection()和SetValue()事件函数应该能实现,但是却没用
SetSelection() 将给定索引处的项设置为选中状态,这个索引的怎么设置啊,我直接用这个:SetSelection(1),但是没用啊
...全文
431 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
永爱果果 2020-01-05
  • 打赏
  • 举报
回复
[quote=引用 1 楼 冰风漫天 的回复:]
import wx
class Form(wx.Frame):
    def __init__(self):
        super().__init__(parent=None, title="", size=(400, 130))
        self.Center()
        panel = wx.Panel(parent=self)
        hbox1 = wx.BoxSizer(wx.HORIZONTAL)

        list1 = ['A', 'B', "C"]
        ch1 = wx.ComboBox(panel, -1, value='', choices=list1, style=wx.CB_SORT)
        ch1.SetSelection(1)
        self.ch1 = ch1

        btn1 = wx.Button(panel, -1, "change1")
        self.Bind(wx.EVT_BUTTON, self.on_button1, btn1)
        hbox1.Add(ch1, 1, flag=wx.LEFT | wx.RIGHT | wx.FIXED_MINSIZE, border=5)
        hbox1.Add(btn1, 1, flag=wx.LEFT | wx.RIGHT | wx.FIXED_MINSIZE, border=5)

        hbox2 = wx.BoxSizer(wx.HORIZONTAL)
        list2 = ['1', '2']
        ch2 = wx.Choice(panel, -1, choices=list2)
        btn2 = wx.Button(panel, -1, "change2")
        self.Bind(wx.EVT_BUTTON, self.on_button2, btn2)
        hbox2.Add(ch2, 1, flag=wx.LEFT | wx.RIGHT | wx.FIXED_MINSIZE, border=5)
        hbox2.Add(btn2, 1, flag=wx.LEFT | wx.RIGHT | wx.FIXED_MINSIZE, border=5)
        ch2.SetSelection(1)
        self.ch2 = ch2

        vbox = wx.BoxSizer(wx.VERTICAL)
        vbox.Add(hbox1, 1, flag=wx.ALL | wx.EXPAND, border=5)
        vbox.Add(hbox2, 1, flag=wx.ALL | wx.EXPAND, border=5)

        panel.SetSizer(vbox)

    def change_next(self, ch):
        c = ch.GetCount()
        i = ch.GetSelection()
        i += 1
        if i >= c: i = 0
        ch.SetSelection(i)

    def on_button1(self, event):
        self.change_next(self.ch1)

    def on_button2(self, event):
        self.change_next(self.ch2)

class App(wx.App):
    def OnInit(self):
        frame=Form()
        frame.Show()
        return True
    def OnExit(self):
        return 0

if __name__=='__main__':
    app=App()
    app.MainLoop()
SetSelection(1)没发现有什么问题 [/q] 谢谢,其实用SetValue就可以了,我原来弄错了
冰风漫天 2020-01-05
  • 打赏
  • 举报
回复
import wx
class Form(wx.Frame):
    def __init__(self):
        super().__init__(parent=None, title="", size=(400, 130))
        self.Center()
        panel = wx.Panel(parent=self)
        hbox1 = wx.BoxSizer(wx.HORIZONTAL)

        list1 = ['A', 'B', "C"]
        ch1 = wx.ComboBox(panel, -1, value='', choices=list1, style=wx.CB_SORT)
        ch1.SetSelection(1)
        self.ch1 = ch1

        btn1 = wx.Button(panel, -1, "change1")
        self.Bind(wx.EVT_BUTTON, self.on_button1, btn1)
        hbox1.Add(ch1, 1, flag=wx.LEFT | wx.RIGHT | wx.FIXED_MINSIZE, border=5)
        hbox1.Add(btn1, 1, flag=wx.LEFT | wx.RIGHT | wx.FIXED_MINSIZE, border=5)

        hbox2 = wx.BoxSizer(wx.HORIZONTAL)
        list2 = ['1', '2']
        ch2 = wx.Choice(panel, -1, choices=list2)
        btn2 = wx.Button(panel, -1, "change2")
        self.Bind(wx.EVT_BUTTON, self.on_button2, btn2)
        hbox2.Add(ch2, 1, flag=wx.LEFT | wx.RIGHT | wx.FIXED_MINSIZE, border=5)
        hbox2.Add(btn2, 1, flag=wx.LEFT | wx.RIGHT | wx.FIXED_MINSIZE, border=5)
        ch2.SetSelection(1)
        self.ch2 = ch2

        vbox = wx.BoxSizer(wx.VERTICAL)
        vbox.Add(hbox1, 1, flag=wx.ALL | wx.EXPAND, border=5)
        vbox.Add(hbox2, 1, flag=wx.ALL | wx.EXPAND, border=5)

        panel.SetSizer(vbox)

    def change_next(self, ch):
        c = ch.GetCount()
        i = ch.GetSelection()
        i += 1
        if i >= c: i = 0
        ch.SetSelection(i)

    def on_button1(self, event):
        self.change_next(self.ch1)

    def on_button2(self, event):
        self.change_next(self.ch2)

class App(wx.App):
    def OnInit(self):
        frame=Form()
        frame.Show()
        return True
    def OnExit(self):
        return 0

if __name__=='__main__':
    app=App()
    app.MainLoop()
SetSelection(1)没发现有什么问题

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧