WxPython(五) -- StaticBox,下拉框ComboBox,文件选择框FileDialog以及消息对话框MessageDialog


StaticBox


在wxPython中,StaticBox提供了盒子周围的边框以及顶部的标签,等同于wx.BoxSizer,不一样的地方就在于多了个边框以及顶部的标签

使用教程:

  1. 创建一个wx.StaticBox对象。
  2. 使用上面的静态框作为参数声明一个wx.StaticBoxSizer。
  3. 创建控件并添加staticbox sizer。
  4. 将其设置为框架的sizer
        # 创建一个wx.BoxSizer对象。
        LogSizer = wx.BoxSizer()
        # 创建一个wx.StaticBox对象。
        Log_StaticBox = wx.StaticBox(self.Panel_Bottom, -1, '日志输出:')
        # 声明一个wx.StaticBoxSizer与创建的wx.StaticBox对象作为其参数。
        # wx.VERTICAL是书香排列,横向排列是wx.HORIZONTAL
        Log_StaticBoxSizer = wx.StaticBoxSizer(self.Log_StaticBox, wx.VERTICAL)

然后需要什么控件都可以往Log_StaticBoxSizer 里面进行添加,然后把Log_StaticBoxSizer 嵌套在LogSizer 里面,最后再进行设置一个顶级的Sizer,就像这样:

  # 日志输出模块
        self.LogSizer = wx.BoxSizer()
        self.Log_StaticBox = wx.StaticBox(self.Panel_Bottom, -1, '日志输出:')
        self.Log_StaticBoxSizer = wx.StaticBoxSizer(self.Log_StaticBox, wx.VERTICAL)
        # 用来查看日志输出的文本框
        self.LogText = wx.TextCtrl(self.Panel_Bottom, -1, u'', style=wx.TE_MULTILINE)
        # 设置字体风格大小
        self.font = wx.Font(10, wx.MODERN, wx.NORMAL, wx.NORMAL, False, 'Consolas')
        self.LogText.SetFont(self.font)
        self.Log_StaticBoxSizer.Add(self.LogText, proportion=1, flag=wx.EXPAND | wx.ALL, border=5)
        self.LogSizer.Add(self.Log_StaticBoxSizer, proportion=1, flag=wx.EXPAND | wx.ALL, border=5)

        self.Panel_Bottom.SetSizer(self.LogSizer)

效果:
在这里插入图片描述


ComboBox


wx.Combobox由一个编辑框和列表组成。它可以显示为带有可编辑或只读文本框的静态列表,也可以显示为带下拉列表的文本区域,或者是不带文本框的下拉列表

Style 样式

Style描述
wx.CB_SIMPLE创建一个带列表显示的combobox.只支持windows
wx.CB_DROPDOWN创建一个带下拉列表的combobox
wx.CB_READONLY同wx.CB_DROPDOWN,但只有被当做combobox选择项的字符串才能被选定,不在选择列表中的字符串无法将无法填入控件中的文本框
wx.CB_SORT列表项按字母序排序
wx.TE_PROCES_ENTER此样式下控件会产生事件wx.EVT_COMMAND_TEXT_ENTER(否则按下Enter键要么被控件内部处理,要么被用于控件导航)。仅支持windows

以带下拉列表为例,创建一个Combobox

sampleList = [u'1', u'2', u'3', u'4', u'5', u'6', u'7', u'8']
# 参数:面板,Id,初始值,下拉菜单的列表,风格
Channel_ComboBox = wx.ComboBox(self.Panel_Top_Left, -1, value="", choices=sampleList, style=wx.CB_DROPDOWN)

效果图:
在这里插入图片描述


FileDialog


在wxPython中,wx.FileDialog为主流的平台使用本地操作系统对话框。wx.FileDialog 允许用户打开一个文件选择框,然后从系统的文件中选择一个或者多个文件,而且还支持通配符,可以让用户选择关心的文件。例如:"BMP files (.bmp)|.bmp|GIF files (.gif)|.gif"只会显示和选择缀类型是bmp 和gif的图片。
style参数:

style描述
wx.DD_DEFAULT_STYLE相当于的组合wx.DEFAULT_DIALOG_STYLE和wx.RESIZE_BORDER
wx.DD_DIR_MUST_EXIST对话框将允许用户仅选择现有文件夹。如果未指定此样式,则将“创建新目录”按钮添加到对话框(在Windows上),或者向用户提供某种其他方式来键入新文件夹的名称。
wx.DD_CHANGE_DIR将当前工作目录更改为用户选择的目录。(此标志不能与DD_MULTIPLE 样式一起使用 。)
wx.DD_MULTIPLE允许用户选择多个目录
wx.DD_SHOW_HIDDEN显示隐藏和系统文件夹

新建一个方法,然后用一个Button绑定点击事件,当用户点击按钮后,触发该事件,弹出文件选择框

  def Choose_Apk_File(self, event):
        # 文件选择框
        # 参数:parent,message:出现在窗口的标题栏中。defaultDir:参数告诉对话框初始的时候显示哪个目录。defaultFile:是默认保存为的文件。wildcard:使你可以基于给定的模式来过滤列表,使用通常的*和?作为通配符。通配符可以是单个 模式,如“All files (*.*)|*.*”,表示支持所有文件
        # wx.FileDialog(parent, message="Choose a file", defaultDir="",defaultFile="",wildcard="*.*", style=0)
        dialog = wx.FileDialog(self, u'请选择Apk文件:', defaultDir=os.getcwd(), defaultFile="", wildcard="All files (*.*)|*.*", style=wx.DD_DEFAULT_STYLE | wx.DD_NEW_DIR_BUTTON)
        if dialog.ShowModal() == wx.ID_OK:
            path = dialog.GetPath()
            # 获取文件拓展名
            File_Type = os.path.splitext(path)[1]
            if File_Type != u'.apk':
                # 消息对话框
                MsgDialog = wx.MessageDialog(None, u'请选择Apk文件', u'提示', wx.YES_NO)
                if MsgDialog.ShowModal() == wx.ID_YES:
                    # 点击确定关闭消息框
                    MsgDialog.Destroy()
            else:
                # 如果选择的是Apk文件,则把路径set到文本框上面
                self.Apk_Path_TextCtrl.SetLabel(path)

        dialog.Destroy()

效果:
在这里插入图片描述


MessageDialog


Messagebox也就是我们平时所说的消息对话框,主要是在屏幕正中间弹出一个对话框,显示对应的内容,告诉用户发生了什么事情
在wxpython中使用时就是wx.MessageDialog(wxWindow* parent, const wxString& message, const wxString& caption = “Message box”, long style = wx.OK | wx.CANCEL, const wxPoint& pos = wxDefaultPosition)
style参数:

style描述
wx.OK显示一个确定按钮
wx.CANCEL显示取消按钮
wx.YES_NO显示是和否按钮
wx.YES_DEFAULT与wx.YES_NO一起使用时,将“是”按钮设置为默认按钮-这是默认行为
wx.wxNO_DEFAULT与wx.YES_NO一起使用时,将“否”按钮设为默认按钮
wx.ICON_EXCLAMATION显示一个感叹号图标
wx.ICON_HAND显示错误图标
wx.ICON_ERROR显示错误图标
wx.ICON_QUESTION显示一个问号图标
wx.ICON_INFORMATION显示信息(i)图标
wx.STAY_ON_TOP消息框位于所有其他窗口的顶部,甚至包括其他应用程序的窗口(仅Windows)

示例:

        if not 条件:
            ErrorDialog = wx.MessageDialog(None, u'输入的信息有误,请重新输入...', u'提示', wx.YES_NO)
            if ErrorDialog.ShowModal() == wx.ID_YES:
                # 点击确定关闭消息框
                ErrorDialog.Destroy()
        else:
            MsgDialog = wx.MessageDialog(None, u'保存成功~', u'提示', wx.YES_NO)
            if MsgDialog.ShowModal() == wx.ID_YES:
                # 点击确定关闭消息框
                MsgDialog.Destroy()

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值