【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")。
  • 点击"登录"按钮会根据输入执行基本验证。
相关推荐
喜欢喝果茶.10 分钟前
QOverload<参数列表>::of(&函数名)信号槽
开发语言·qt
亓才孓11 分钟前
[Class类的应用]反射的理解
开发语言·python
努力学编程呀(๑•ี_เ•ี๑)11 分钟前
【在 IntelliJ IDEA 中切换项目 JDK 版本】
java·开发语言·intellij-idea
小镇敲码人20 分钟前
深入剖析华为CANN框架下的Ops-CV仓库:从入门到实战指南
c++·python·华为·cann
island131433 分钟前
CANN GE(图引擎)深度解析:计算图优化管线、内存静态规划与异构任务的 Stream 调度机制
开发语言·人工智能·深度学习·神经网络
坚持就完事了37 分钟前
Java中的集合
java·开发语言
摘星编程40 分钟前
深入理解CANN ops-nn BatchNormalization算子:训练加速的关键技术
python
魔芋红茶41 分钟前
Python 项目版本控制
开发语言·python
lili-felicity1 小时前
CANN批处理优化技巧:从动态批处理到流水线并行
人工智能·python
一个有梦有戏的人1 小时前
Python3基础:进阶基础,筑牢编程底层能力
后端·python