第23天 | 25天学会wxPython,消息对话框

对话窗口或对话框是大多数应用软件中不可缺少的一部分,它是执行命令过程中人机对话的一种界面。对话框是一个独立的窗口,起到了与用户进行交互的作用,用户可以在对话框中输入信息、阅读提示和设置选项等操作。

你可以使用预定义的对话框,如消息对话框框wx.MessageBox、字体对话框wx.FontDialog和颜色对话框wx.ColourDialog,也可以通过继承wx.Dialog,创建自己的自定义对话框。

23.1 消息对话框

消息对话框wx.MessageBox用来给用户展示消息,它的语法为:MessageBox (self, parent, message, caption=None, style=None, *args, **kwargs),其中,message为消息内容,caption是标题,style是一些标记,用来展示不同的按钮和图标。

程序清单:msg_box.py

import wx
import wx.grid


# 继承Frame
class DialogControl(wx.Frame):
    account = None
    password = None

    def __init__(self, *args, **kwargs):
        super(DialogControl, self).__init__(*args, **kwargs)
        # 初始化窗口UI
        self.init_ui()

    def init_ui(self):
        # 账号
        wx.StaticText(self, label="账号:", pos=(35, 50))
        self.account = wx.TextCtrl(self, pos=(75, 50), size=(160, -1))
        # 密码
        wx.StaticText(self, label="密码:", pos=(35, 100))
        self.password = wx.TextCtrl(self, pos=(75, 98), size=(160, -1),
                                    style=wx.TE_PASSWORD)
        # 登录按钮
        login_btn = wx.Button(self, label="登 录", pos=(50, 120),
                              size=(180, 100))
        self.Bind(wx.EVT_BUTTON, self.login, login_btn)
        self.SetSize(280, 380)
        self.SetTitle("登录窗口")
        self.Centre()
        self.Show(True)

    def login(self, e):
        account = self.account.GetValue()
        password = self.password.GetValue()
        if account.strip() == "":
            dial = wx.MessageDialog(None, caption="账号为空",
                                    message="账号不能为空,请输入",
                                    style=wx.OK | wx.ICON_ERROR)
            dial.ShowWindowModal()
        elif password.strip() == "":
            dial = wx.MessageDialog(None, caption="密码为空",
                                    message="确定不用密码?",
                                    style=wx.YES_NO | wx.ICON_INFORMATION)
            result = dial.ShowWindowModal()
            if result == wx.ID_YES:
                print("登录进管理窗口")
        else:
            print("恭喜你,登录成功!")


def main():
    app = wx.App(False)
    DialogControl(None, style=wx.CLOSE_BOX)
    app.MainLoop()


if __name__ == "__main__":
    main()

运行程序之后,弹出的窗口如下:

第23天 | 25天学会wxPython,消息对话框

消息对话框wx.MessageDialog()的对象调用ShowWindowModal()方法时,弹出的提示框在窗口中间(居中),调用ShowModal()方法,弹出的提示框在窗口上面,点击弹出框的按钮,会返回一个按键代码,如点击wx.YES_NO中的YES按键,返回wx.ID_YES。样式style的值,可用|进行组合,可选项如下:

wx.OK:显示一个OK按键;

wx.CANCEL:显示一个Cancel按键;

wx.YES_NO:显示一个Yes和一个No按键;

wx.YES_DEFAULT:使用默认的Yes按键;

wx.NO_DEFAULT :使用默认No按键;

wx.ICON_EXCLAMATION :显示一个alert图标;

wx.ICON_ERROR :显示一个error图标;

wx.ICON_HAND :与wx.ICON_ERROR一样;

wx.ICON_INFORMATION :显示一个info图标;

wx.ICON_QUESTION :显示一个question图标。

好了,消息对话框的内容就说到这了,关注我,下一节更精彩。

码字不易,你的关注和转发是对我最大的鼓励,谢谢!

一个当了10年技术总监的老家伙,分享多年的编程经验。想学编程的朋友,关注我,你就赚到了。我正在分享Python、前端、Java和App方面的干货了。赶紧来围观啊!!!

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值