【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")。
  • 点击"登录"按钮会根据输入执行基本验证。
相关推荐
IT_陈寒27 分钟前
Vite的热更新突然不香了,排查三小时差点砸键盘
前端·人工智能·后端
子兮曰1 小时前
Agency-Agents 深度解析:400+ AI 专家的"梦之队"如何重塑开发工作流
前端·后端·vibecoding
竹林8182 小时前
用 The Graph 查询链上数据实战:从手搓 RPC 到 Subgraph,我的 NFT 项目数据加载快了 10 倍
前端·javascript
用户8356290780512 小时前
Python 实现 PDF 文件加密与解密方法
后端·python
用户8356290780512 小时前
使用 Python 冻结与拆分 Excel 窗格教程
后端·python
妙码生花2 小时前
从 PHP 到 AI + Golang,程序员自救转型手记(十九):点选验证码代码逐行目检
前端·后端·go
Awu12273 小时前
⚡从零开发 Agent CLI(五)实现一个可治理、可扩展的工具系统
前端·人工智能·claude
咪库咪库咪3 小时前
Vue3-生命周期
前端
莪_幻尘3 小时前
你的 AI Skill 越多越蠢?Token 上下文爆炸的求生指南
前端·ai编程
lichenyang4534 小时前
从 has.echo 到异步 API 注册表:一次 ASCF API 回调不触发的排查复盘
前端