QT登录界面设计及跳转主界面

QT登录界面设计及跳转主界面

界面样式

先贴图
在这里插入图片描述

创建流程

首先创建界面:
在这里插入图片描述
选择无按钮界面
在这里插入图片描述

界面设计

所需控件

添加容器,并设置合适大小
在这里插入图片描述
添加label标签
添加lineEdit控件作为用户名和密码输入框
添加button控件作为登录和取消按钮
全部标签如下
在这里插入图片描述

界面外观设计

添加底色

对主窗体添加底色
选中主窗体,在属性中找到styleSheet属性,对主窗体格式进行设置
这里一定要注意添加主体。对哪个组件的哪个属性进行设计。
#login 对login组件进行设计
{ } 包含组件的属性
background-color 设计对象为背景色
:背景色取值
rgb(42,216,25) 背景色值
;背景色设置结束
在这里插入图片描述
在这里插入图片描述

设置密码输入框以密文显示:

密码密码,当然不能直接显示了。
选中密码输入控件,设置echoMode属性
将其设置为Password属性。这样我们输入数据时,就会以密文形式显示了。
在这里插入图片描述
至此登录界面界面设计完成。添加背景图片或渐变色方法一样。

程序设计

取消按钮

首先我们转到槽函数clicked()
然后添加退出函数

void login::on_exitloginButton_clicked()
{
    this->close();
}

编译运行看一看
在这里插入图片描述
此时运行出来发现我们的界面竟然有最小化、最大化等按钮,这也太丑了吧
那么决定了,取消这个标题栏。
取消标题栏需要调用setWindowFlags函数
调用方式如下:

this->setWindowFlags(Qt::FramelessWindowHint);

编译再运行一下
在这里插入图片描述
此时一切如我所愿,界面初步显示无问题了。

登录按钮

接下来我们需要让用户名和密码输入均正确时,点击登录按钮时,跳转到主界面,同时关闭登录页。
同样跳转到登录click槽函数。
槽函数实现原理如下:

void login::on_loginButton_clicked()
{
    MAINWindow *s = new ;

    if(ui->userNameInput->text() == "user" && ui->passwordInput->text() == "12345")
    {
        s->show();
        this->close();
    }
    else
    {
        QMessageBox::about(NULL,"","用户名或密码错误");
        s->deleteLater();
    }
}

基本原理如此,更多丰富功能,按示例开发即可。

注:

这里我们直接在登录页创建主界面显示,这样最简单,不需要去发射信号出发登录。

以下是一个简单的示例代码,展示如何在QT中实现登录界面页面之间的跳转: ```python from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QLineEdit, QPushButton, QVBoxLayout, QHBoxLayout, QMessageBox class LoginWindow(QWidget): def __init__(self): super().__init__() self.username_label = QLabel("Username:") self.username_edit = QLineEdit() self.password_label = QLabel("Password:") self.password_edit = QLineEdit() self.password_edit.setEchoMode(QLineEdit.Password) self.login_button = QPushButton("Login") self.login_button.clicked.connect(self.login) vbox = QVBoxLayout() hbox1 = QHBoxLayout() hbox2 = QHBoxLayout() hbox1.addWidget(self.username_label) hbox1.addWidget(self.username_edit) hbox2.addWidget(self.password_label) hbox2.addWidget(self.password_edit) vbox.addLayout(hbox1) vbox.addLayout(hbox2) vbox.addWidget(self.login_button) self.setLayout(vbox) self.setWindowTitle("Login") def login(self): # 假设正确的用户名和密码是 "admin" 和 "password" if self.username_edit.text() == "admin" and self.password_edit.text() == "password": self.close() self.main_window = MainWindow() self.main_window.show() else: QMessageBox.warning(self, "Error", "Incorrect username or password") class MainWindow(QWidget): def __init__(self): super().__init__() self.greeting_label = QLabel("Welcome to the main window!") vbox = QVBoxLayout() vbox.addWidget(self.greeting_label) self.setLayout(vbox) self.setWindowTitle("Main Window") if __name__ == '__main__': app = QApplication([]) login_window = LoginWindow() login_window.show() app.exec_() ``` 这个示例中,`LoginWindow` 类表示登录界面,`MainWindow` 类表示页面。当用户在登录界面中输入正确的用户名和密码并点击登录按钮时,程序将关闭登录界面并打开页面。如果输入的用户名或密码不正确,程序将弹出一个警告对话框。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值