【Python】实战:实现GUI登录界面

实现GUI登录界面

-需求:使用Python第三方库wxPython实现登录界面,需要降低Python解释器的版本Python3.8

安装wxPython

如果你还没有安装 wxPython,可以使用以下命令进行安装:

bash 复制代码
pip install wxPython==4.1.1

如果你的版本不是对应的python3.8,那么可以通过以下命令来查看当前解释器版本:

bash 复制代码
python --version

我这里的版本是3.12对应we的版本应该是

bash 复制代码
pip install wxPython==4.2.1

代码实现:

python 复制代码
import wx  

class LoginFrame(wx.Frame):  
    def __init__(self):  
        super().__init__(parent=None, title='登录界面', size=(300, 200))  
        panel = wx.Panel(self)  
        
        # 用户名标签和文本框  
        username_label = wx.StaticText(panel, label='用户名:', pos=(20, 30))  
        self.username_text = wx.TextCtrl(panel, pos=(100, 30))  

        # 密码标签和文本框  
        password_label = wx.StaticText(panel, label='密码:', pos=(20, 70))  
        self.password_text = wx.TextCtrl(panel, pos=(100, 70), style=wx.TE_PASSWORD)  

        # 登录按钮  
        login_button = wx.Button(panel, label='登录', pos=(100, 110))  
        login_button.Bind(wx.EVT_BUTTON, self.on_login)  

        self.Show()  

    def on_login(self, event):  
        username = self.username_text.GetValue()  
        password = self.password_text.GetValue()  

        # 简单的用户名和密码验证  
        if username == "admin" and password == "password":  
            wx.MessageBox('登录成功!', '提示', wx.OK | wx.ICON_INFORMATION)  
        else:  
            wx.MessageBox('用户名或密码错误。', '错误', wx.OK | wx.ICON_ERROR)  

def main():  
    app = wx.App(False)  
    frame = LoginFrame()  
    app.MainLoop()  

if __name__ == '__main__':  
    main()

代码解释:

  1. 创建应用程序和框架

    • 通过 wx.Frame 创建一个窗口。
    • 定义窗口标题与大小。
  2. 添加控件

    • 使用 wx.StaticText 创建标签。
    • 使用 wx.TextCtrl 创建文本框,用于输入用户名和密码。密码框通过 style=wx.TE_PASSWORD 设定。
  3. 创建登录按钮

    • 使用 wx.Button 创建一个按钮,并绑定 EVT_BUTTON 事件来处理点击操作。
  4. 处理登录事件

    • on_login 方法中获取用户输入,进行简单的用户名和密码验证,并通过 wx.MessageBox 显示结果。
  5. 运行应用程序

    • main 函数中创建 wx.App 实例,启动 GUI 的主循环。

使用说明

  • 启动程序后,会出现一个简单的登录界面。
  • 用户可以输入用户名和密码(在此示例中使用用户名"admin"和密码"password")。
  • 点击"登录"按钮会根据输入执行基本验证。
相关推荐
珐恩AI-人工智能12 分钟前
大模型意图召回偏差分析:GEO如何解决“有收录却不触发问答曝光”的难题
大数据·前端·人工智能·html·流量运营·geo优化
城管不管13 分钟前
重生——第十次面试之开源中国一面挂
java·linux·开发语言·算法·面试·职场和发展·开源
王志来1379447300817 分钟前
从分散到集成:工控服务器机箱采购如何实现“一站式”破局
运维·服务器·人工智能·python
霸道流氓气质27 分钟前
Java开发者AI编程常用MCP、Skills、Rules全景汇总
java·开发语言·ai编程
程序员老赵31 分钟前
Docker 部署禅道 ZenTao:轻松搭建研发项目管理平台
前端·后端·github
三十岁老牛再出发32 分钟前
08.18每日总结
c++·python·numpy·pandas
前端小卡拉37 分钟前
用了大半年 AI 编程工具,我才搞懂 Skill 到底是什么
前端·javascript
hunterandroid40 分钟前
[鸿蒙从零到一] HarmonyOS 单元测试与 UI 自动化测试实战:从代码质量到用户体验的全链路保障
前端
郭邯44 分钟前
用 Intl.DateTimeFormat 手写一个时区转换器,顺便聊聊我和 AI 结对编程的日常
前端·javascript
阿奇__1 小时前
微前端、iframe与Auth Code技术方案对比
前端