Qt之旅---03 Login登录界面

#include<QDialog>   模态对话框
#include<QLabel>    文本
#include<QLineEdit>  输入文本
#include<QPushButton>  按钮
#include<QMessageBox>  消息框

基本属性了解:

userlab=new QLabel(this);
userlab->move(70,80);//在父控件的位置
userlab->setText(tr("Account"));//显示文本
 
userEdit->setPlaceholderText(tr("please input your account"));//提升文本
pwdEdit->setEchoMode(QLineEdit::Password);//设置输入文本为密文类型
connect(loginbtn,&QPushButton::clicked,this,&LoginDialog::login);  //设置信号槽
connect(quitbtn,&QPushButton::clicked,this,&LoginDialog::close);//设置信号槽

 

1 新建  项目  选择appliacation  

2 新建  C++class 名字为 LoginDialog   手动选择 为Dialog

3 进入 LoginDialog .h  编辑为:

#ifndef LOGINDIALOG_H
#define LOGINDIALOG_H
#include<QDialog>
#include<QLabel>
#include<QLineEdit>
#include<QPushButton>
#include<QMessageBox>
class LoginDialog : public QDialog
{
Q_OBJECT
private slots:
void login();
public:
explicit LoginDialog();
~LoginDialog();
QLabel *userlab;
QLabel *pwdlab;
QLineEdit *userEdit;
QLineEdit *pwdEdit;
QPushButton *loginbtn;
QPushButton *quitbtn;
 
};
 
#endif // LOGINDIALOG_H

然后在 LoginDialog.cpp 实现响应函数 login  和  析构函数 和构造函数

如下

#include "logindialog.h"
 
LoginDialog::LoginDialog()
{
userlab=new QLabel(this);
userlab->move(70,80);
userlab->setText(tr("Account"));
 
userEdit=new QLineEdit(this);
userEdit->move(140,80);
userEdit->setPlaceholderText(tr("please input your account"));
 
pwdlab=new QLabel(this);
pwdlab->move(70,130);
pwdlab->setText(tr("Password"));
 
pwdEdit=new QLineEdit(this);
pwdEdit->move(140,130);
pwdEdit->setEchoMode(QLineEdit::Password);
pwdEdit->setPlaceholderText(tr("please input your password"));
 
loginbtn=new QPushButton(this);
loginbtn->move(50,200);
loginbtn->setText(tr("login"));
 
quitbtn=new QPushButton(this);
quitbtn->move(210,200);
 
connect(loginbtn,&QPushButton::clicked,this,&LoginDialog::login);
connect(quitbtn,&QPushButton::clicked,this,&LoginDialog::close);
}
 
LoginDialog::~LoginDialog(){
 
}
 
void LoginDialog::login(){

    //trimmed() 去掉空格

if(userEdit->text().trimmed()==tr("json96")&&pwdEdit->text().trimmed()==(tr("123456hj")))
{
accept();
}
else
{
QMessageBox::warning(this,tr("waring"),tr("account and password not is invaild"),QMessageBox::Yes);
userEdit->clear();
pwdEdit->clear();
userEdit->setFocus();
}
}
 

 

main文件  如下:

 

#include "mainwindow.h"
#include <QApplication>
#include"logindialog.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
int res=0;
LoginDialog lgdig;
res=lgdig.exec();//登录对话框执行返回结果
if(res==QDialog::Accepted)
{
w.show();
return a.exec();
}
else{
return 0;
}
 
}
 

源码地址:https://gitee.com/codemaner/qt_learning_record/tree/master/Demo11

转载于:https://my.oschina.net/u/3768017/blog/1815667

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值