wxPython listBox的使用

CSDN博客:皮乾东
知乎:Htrying
微博:Htring的微博
微信公众号:自然语言处理爱好者(ID:NLP_lover)

0 环境准备

wxPython坏境的安装(wxPython当前也支持Python3.X版本),在已经配置好的python下,在dos中:pip install wxpython即可,本程序是在win10系统环境下实现。

1 代码详解

import wx
#自定义一个窗口类MyFrame
class MyFrame(wx.Frame):
    def __init__(self):
        super().__init__(parent=None,title="grid布局",size=(400,200))
        self.Center() #设置窗口居中
        #放一个面板,用于布局其他控件
        panel=wx.Panel(parent=self)
        hbox1=wx.BoxSizer(wx.HORIZONTAL)
        #创建静态文本
        statictext=wx.StaticText(panel,label='选择你喜欢的编程语言:')
        list1=['Python','Java',"C++"]
        lb1=wx.ListBox(panel,-1,choices=list1,style=wx.LB_SINGLE)
        #添加事件处理
        self.Bind(wx.EVT_LISTBOX,self.on_combobox,lb1)

        hbox1.Add(statictext,1,flag=wx.LEFT |wx.RIGHT|wx.FIXED_MINSIZE,border=5)
        hbox1.Add(lb1,1,flag=wx.LEFT |wx.RIGHT|wx.FIXED_MINSIZE,border=5)

        hbox2=wx.BoxSizer(wx.HORIZONTAL)
        statictext=wx.StaticText(panel,label='选择性别:')
        list2=['男','女']
        lb2=wx.ListBox(panel,-1,choices=list2,style=wx.LB_EXTENDED | wx.LB_SORT)
        #添加事件处理
        self.Bind(wx.EVT_LISTBOX,self.on_choice,lb2)
        hbox2.Add(statictext,1,flag=wx.LEFT |wx.RIGHT|wx.FIXED_MINSIZE,border=5)
        hbox2.Add(lb2,1,flag=wx.LEFT |wx.RIGHT|wx.FIXED_MINSIZE,border=5)
        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 on_combobox(self,event):
        listbox=event.GetEventObject()
        print("选择{0}".format(listbox.GetSelection()))

    def on_choice(self,event):
        listbox=event.GetEventObject()
        print("选择{0}".format(listbox.GetSelections()))
#自定以一个应用程序类
class App(wx.App):
    def OnInit(self):
        #创建窗口对象
        frame=MyFrame()
        frame.Show()
        return True
    def OnExit(self):
        print("应用程序退出")
        return 0

if __name__=='__main__':
    app=App()#创建自定以对象App
    app.MainLoop()#进入事件主循环

2 程序运行效果

这里写图片描述

3 程序总结

listBox也是软件开发的一个常用的控件。
这里写图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智绘山河

你的鼓励可能解决你下一个问题

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值