Python中的GUI编程,以胡桃老婆示例

该代码示例展示了如何利用wxPython库构建一个具有胡桃主题的图形用户界面,包括设置标题、文字、文本框和按钮,以及处理登录验证的事件。用户需输入昵称和密码,程序会对输入进行检查并显示相应信息。
import wx
class HuTaoFrame(wx.Frame):
    def __init__ (self , parent=None , id=-1 , title="NewFrame" , pos=(100,100) , size=(300,300) ):
        wx.Frame.__init__( self , parent , id , title , pos , size )
        panel = wx.Panel(self)  #创建画板

        #创建标题与可爱的胡桃
        self.title = wx.StaticText( panel , label="可爱的胡堂主(*╹▽╹*)" )
        font = wx.Font(16, wx.DEFAULT, wx.FONTSTYLE_ITALIC, wx.BOLD )
        self.title.SetFont(font)  # 将标题对象的字体设置为指定的字体
        self.sentence1 = wx.StaticText(panel, label="嗯~早起身体好,晚睡人会飘。")
        self.sentence2 = wx.StaticText(panel, label="哟!中午好呀,吃了吗?")
        self.sentence3 = wx.StaticText(panel, label="嘻嘻,月亮出来喽~咱也出门吧。")
        #创建登录文本
        self.subtitle = wx.StaticText(panel, label="申请结婚登记")
        self.subtitle.SetFont(font)  # 将副标题对象的字体设置为指定的字体
        self.labor_user = wx.StaticText( panel , label="昵称:" )
        self.text_user = wx.TextCtrl(panel, style=wx.TE_LEFT )
        self.text_user.SetHint('输入个可爱的昵称吧~')
        self.label_pwd = wx.StaticText(panel, pos=(50, 180), label="密码:")
        self.text_password = wx.TextCtrl(panel, style=wx.TE_PASSWORD)
        self.text_password.SetHint('要设置一个安全的密码哦~')
        # 添加按钮并绑定事件
        self.bt_confirm = wx.Button(panel, label="确定")
        self.bt_confirm.Bind(wx.EVT_BUTTON, self.OnclickSubmit)
        self.bt_cancel = wx.Button(panel, label="取消")
        self.bt_cancel.Bind(wx.EVT_BUTTON, self.OnclickCancel)
        #添加容器
            #横向
        hsizer_user = wx.BoxSizer(wx.HORIZONTAL)
        hsizer_user.Add( self.labor_user , proportion=0 , flag=wx.ALL , border=5 )
        hsizer_user.Add( self.text_user , proportion=1, flag=wx.ALL, border=5 )
        hsizer_pwd = wx.BoxSizer(wx.HORIZONTAL)
        hsizer_pwd.Add( self.label_pwd , proportion=0 , flag=wx.ALL , border=5 )
        hsizer_pwd.Add( self.text_password, proportion=1, flag=wx.ALL, border=5 )
        hsizer_button = wx.BoxSizer(wx.HORIZONTAL)
        hsizer_button.Add( self.bt_confirm , proportion=0 , flag=wx.ALIGN_CENTER , border=5 )
        hsizer_button.Add(self.bt_cancel, proportion=0, flag=wx.ALIGN_CENTER, border=5)
            #纵向
        vsizer_all = wx.BoxSizer(wx.VERTICAL)
        vsizer_all.Add(self.title , proportion=0 , flag=wx.BOTTOM | wx.TOP | wx.ALIGN_CENTER , border=10 )
        vsizer_all.Add(self.sentence1, proportion=0, flag=wx.BOTTOM | wx.TOP | wx.ALIGN_CENTER, border=0)
        vsizer_all.Add(self.sentence2, proportion=0, flag=wx.BOTTOM | wx.TOP | wx.ALIGN_CENTER, border=0)
        vsizer_all.Add(self.sentence3, proportion=0, flag=wx.BOTTOM | wx.TOP | wx.ALIGN_CENTER, border=0)
        vsizer_all.Add(self.subtitle, proportion=0, flag=wx.BOTTOM | wx.TOP | wx.ALIGN_CENTER, border=10)
        vsizer_all.Add(hsizer_user, proportion=0, flag=wx.EXPAND | wx.LEFT | wx.RIGHT, border=15)
        vsizer_all.Add(hsizer_pwd, proportion=0, flag=wx.EXPAND | wx.LEFT | wx.RIGHT, border=15)
        vsizer_all.Add(hsizer_button, proportion=0, flag=wx.ALIGN_CENTER | wx.TOP , border=15)
        panel.SetSizer(vsizer_all)

    def OnclickSubmit(self,event):
        message = ""
        username = self.text_user.GetValue()
        password = self.text_password.GetValue()
        if username == "":
            message = "昵称不能为空"
        elif password == "":
            message = "密码不能为空"
        elif username == "xiaoman" and password == "xiaoman521":
            message = "成功了!"
        else:
            message = "昵称与密码不匹配哦~"
        wx.MessageBox(message)  #弹出提示框

    def OnclickCancel(self,event):
        self.text_user.SetValue("") #清空昵称
        self.text_password.SetValue("") #清空密码

if __name__ == '__main__':
    app = wx.App()
    frame = HuTaoFrame(title="胡桃老婆",size=(450,300))
    frame.Show()
    app.MainLoop()

输出如下图

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值