【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")。
  • 点击"登录"按钮会根据输入执行基本验证。
相关推荐
YWL14 分钟前
OpenLayers+ECharts联动:地图点击联动图表,数据可视化大屏方案
前端·信息可视化·vue·echarts·openlayers
驭渊的小故事18 分钟前
多线程02
java·开发语言·jvm
芭拉拉小魔仙21 分钟前
Vue 2 门诊收费系统中的医保结算流程设计与实践
前端·javascript·vue.js
阿里嘎多学长21 分钟前
2026-09-09 GitHub 热点项目精选
开发语言·程序员·github·代码托管
moonrailgun28 分钟前
用 Node.js 复刻 Codex Astra 的终端星光
前端·javascript·算法
君顾135 分钟前
本地折扣卡 CPS 平台搭建:从系统架构到落地实战
java·开发语言·折扣卡
海上彼尚1 小时前
Cursor 模型的强度实测排行
前端·人工智能·后端
默_笙1 小时前
💫 给金鱼建图书馆(下):Milvus 向量数据库,让 AI 拥有长期记忆
前端·javascript
YCOSA20251 小时前
系统工具使用检测.exe (仅供娱乐)
python·microsoft
2601_962295331 小时前
如何python实现网页的自动化
python·selenium·beautifulsoup·requests·网页自动化