• Qt实践基础-简单的登录界面的实现


    主要代码的实现:

    1、为了更好的实现界面的组织,采用C++直接构建UI

    2、登录多次密码错误则断开“确认”按钮的链接

    3、注意理解static变量的应用

    4、QString类的使用更像继承了string类型,要熟悉它的使用

     1 #include "qwlogin.h"
     2 
     3 
     4 QWLogin::QWLogin(QWidget *parent)
     5     : QWidget(parent)
     6 {
     7     setUI();
     8     initialSignal();
     9     setWindowTitle("登录界面");
    10 }
    11 
    12 QWLogin::~QWLogin()
    13 {
    14 }
    15 
    16 void QWLogin::setUI()
    17 {
    18     label3 = new QLabel(tr("登录"));
    19     QFont font = label3->font();
    20     font.setPointSize(20);
    21     label3->setFont(font);
    22     //登录标题
    23     label1 = new QLabel(tr("用户名:"));
    24     name = new QLineEdit;
    25     QHBoxLayout *input_name = new QHBoxLayout;
    26     input_name->addWidget(label1);
    27     input_name->addWidget(name);
    28     //输入用户名
    29     label2 = new QLabel(tr("密码:"));
    30     password = new QLineEdit;
    31     QHBoxLayout *input_password = new QHBoxLayout;
    32     input_password->addWidget(label2);
    33     input_password->addWidget(password);
    34     //输入密码
    35     btnOK = new QPushButton(tr("确定"));
    36     btnCLOSE = new QPushButton(tr("取消"));
    37     QHBoxLayout *button = new QHBoxLayout;
    38     button->addWidget(btnOK);
    39     button->addStretch();
    40     button->addWidget(btnCLOSE);
    41     //操作按钮
    42     QVBoxLayout *page = new QVBoxLayout;
    43     page->addWidget(label3);
    44     page->addLayout(input_name);
    45     page->addLayout(input_password);
    46     page->addLayout(button);
    47     //构建主页面框架
    48     setLayout(page);//完成布局
    49 }
    50 
    51 void QWLogin::initialSignal()
    52 {
    53     connect(btnCLOSE,SIGNAL(clicked()),this,SLOT(close()));
    54     connect(btnOK,SIGNAL(clicked()),this,SLOT(on_Login()));
    55 }
    56 
    57 void QWLogin::on_Login()
    58 {
    59     static int cout = 0;
    60     QString user = name->text();
    61     QString pass = password->text();
    62     QString p="";
    63     int lenth = pass.count();
    64     for(int i=0;i<lenth;i++)p.append("*");
    65     password->setText(p);
    66     if(user=="savenneer"&&pass=="cymasd")
    67         p="  登录成功";
    68     else {p="  登录失败";cout++;}
    69     if(cout>=4)
    70     {
    71         p = "失败操作过多
    禁止登录";
    72         disconnect(btnOK,SIGNAL(clicked),this,SLOT(on_Login()));
    73     }
    74     int len = user.count();
    75     if(len==0||lenth==0){p="未输入内容";cout--;}
    76     label3->setText(p);
    77 }

    头文件的构建:

     1 #ifndef QWLOGIN_H
     2 #define QWLOGIN_H
     3 
     4 #include <QWidget>
     5 #include <QPushButton>
     6 #include <QLineEdit>
     7 #include <QLabel>
     8 #include <QLayout>
     9 
    10 
    11 class QWLogin : public QWidget
    12 {
    13     Q_OBJECT
    14 private:
    15     QPushButton* btnOK;
    16     QPushButton* btnCLOSE;
    17     QLabel *label1;
    18     QLabel *label2;
    19     QLabel *label3;
    20     QLineEdit *name;
    21     QLineEdit *password;
    22 
    23 private slots:
    24     void setUI();
    25     void initialSignal();
    26     void on_Login();
    27 
    28 public:
    29     QWLogin(QWidget *parent = nullptr);
    30     ~QWLogin();
    31 };
    32 #endif // QWLOGIN_H

    OK

  • 相关阅读:
    堆内存内部结构
    JVM 总体结构
    HTTP的工作原理
    HTTP协议简介
    服务器硬件资源_I/O
    maven常用命令行总结
    java enum—枚举的应用
    JAVA闰年的判断
    JAVA数据结构与算法——求最大公约数!!
    ThinkPHP 分页
  • 原文地址:https://www.cnblogs.com/savennist/p/12322897.html
Copyright © 2020-2023  润新知