QT编程之作业3

要求:一个简单的登录页面,模仿QQ登录,然后点击按钮进行数据的注册,注册成功后返回登录页面有用户名和密码的信息。

运行结果如图所示:



下面是我写的代码

 第一个是登录logindialog.h 

#ifndef LOGINDIALOG_H
#define LOGINDIALOG_H

#include <QDialog>

namespace Ui {
class LoginDialog;
}

class LoginDialog : public QDialog
{
    Q_OBJECT

public:
    explicit LoginDialog(QWidget *parent = 0);
    //explicit LoginDialog(QString username,QString password,QWidget *parent = 0);
    ~LoginDialog();

private slots:
    void on_zcpushButton_clicked();
    void getValue(QString user,QString paswd);

private:
    Ui::LoginDialog *ui;
};

#endif // LOGINDIALOG_H
第二个是注册zcdialog.h

#ifndef LOGINDIALOG_H
#define LOGINDIALOG_H

#include <QDialog>

namespace Ui {
class LoginDialog;
}

class LoginDialog : public QDialog
{
    Q_OBJECT

public:
    explicit LoginDialog(QWidget *parent = 0);
    //explicit LoginDialog(QString username,QString password,QWidget *parent = 0);
    ~LoginDialog();

private slots:
    void on_zcpushButton_clicked();
    void getValue(QString user,QString paswd);

private:
    Ui::LoginDialog *ui;
};

#endif // LOGINDIALOG_H
第三个是logindialog.cpp

#include "logindialog.h"
#include "ui_logindialog.h"
#include<zcdialog.h>
LoginDialog::LoginDialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::LoginDialog)
{
    ui->setupUi(this);
}
/*
LoginDialog::LoginDialog(QString username, QString password, QWidget *parent):
    QDialog(parent),
    ui(new Ui::LoginDialog)
{
    ui->setupUi(this);
    ui->userlineEdit->setText(username);
    ui->pwdlineEdit->setText(password);
}
*/
LoginDialog::~LoginDialog()
{
    delete ui;
}

void LoginDialog::on_zcpushButton_clicked()
{

    ZcDialog *pdlg = new ZcDialog;
    connect(pdlg, SIGNAL(retvalue(QString,QString)),this, SLOT(getValue(QString,QString)));

    pdlg->setAttribute(Qt::WA_DeleteOnClose);
    pdlg->show();
}

void LoginDialog::getValue(QString user, QString paswd)
{
    ui->userlineEdit->setText(user);
    ui->pwdlineEdit->setText(paswd);
}

第四个是main.cpp

#include "logindialog.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    LoginDialog w;
    w.show();
    w.setWindowTitle("QQ登录窗口");
    return a.exec();
}

第五个是zcdialog.cpp

#include "zcdialog.h"
#include "ui_zcdialog.h"
#include<QMessageBox>
#include<logindialog.h>
#include<QTimer>
#include<windows.h>
#include<QProgressBar>
#include<QProgressDialog>
ZcDialog::ZcDialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::ZcDialog)
{
    ui->setupUi(this);
    //暗文生成
    ui->pwdlineEdit->setEchoMode(QLineEdit::Password);
    //组默认选择
    ui->boyradioButton->setChecked(true);

}

ZcDialog::~ZcDialog()
{
    delete ui;
}

void ZcDialog::on_zc2pushButton_clicked()
{
    if(ui->userlineEdit->text().trimmed()!=""&&ui->pwdlineEdit->text().trimmed()!="")
    {

        QProgressDialog dialog(tr("注册进行中"),tr("取消"),0,99,this);
           dialog.setWindowTitle(tr("进度条对话框"));
           dialog.setWindowModality(Qt::WindowModal);
           dialog.show();
           for(int i=0;i<=99;i++)
           {
               dialog.setValue(i);
               Sleep(50);
               //QCoreApplication::processEvents();//防止界面冻结
               if(dialog.wasCanceled()) return; //取消就中断
               if(i==99)
               {
                   QMessageBox::information(this,tr("系统提示"),tr("注册完毕"),QMessageBox::Ok);
               }
               }
        //QMessageBox::information(this,tr("提示"),tr("注册成功"),QMessageBox::Ok|QMessageBox::Default);
        #if 0
        //模态
        QString username=ui->userlineEdit->text();
        QString pwd=ui->pwdlineEdit->text();
        LoginDialog log(username,pwd);
        log.exec();
        #endif
        //非模态窗口
        QString username=ui->userlineEdit->text();
        QString pwd=ui->pwdlineEdit->text();
        emit  retvalue(username,pwd);
        this->close();

    }
    else
    {
       QMessageBox::warning(this,"warning","用户名或者密码不能为空",QMessageBox::Yes);
    }

}

void ZcDialog::on_cancelpushButton_clicked()
{
     this->close();
}
最后完工!





  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本课程详细、全面地介绍了 Qt 开发中的各个技术细节,并且额外赠送在嵌入式端编写Qt程序的技巧。整个课程涵盖知识点非常多,知识模块囊括 Qt-Core 组件、QWidgets、多媒体、网络、绘图、数据库,超过200个 C++ 类的分析和使用,学完之后将拥有 Qt 图形界面开发的非常坚实的功底。 每个知识点不仅仅会通过视频讲解清楚,并且会配以精心安排的实验和作业,用来保证学习过程中切实掌握核心技术和概念,通过实验来巩固,通过实验来检验,实验与作业的目的是发现问题,发现技术盲点,通过答疑和沟通夯实技术技能。注意:本套视频教程来源于线下的实体班级,因此视频中有少量场景对话和学生问答,对此比较介意的亲们谨慎购买。注意:本套视频教程包含大量课堂源码,包含对应每个知识点的精心编排的作业。由于CSDN官方规定在课程介绍中不能出现作者的联系方式,因此在这里无法直接给出QQ答疑号,视频中的源码、资料和作业文档链接统一在购买后从CSDN平台跟我沟通,我会及时回复跟进。注意:本套视频教程包含全套10套作业题,覆盖所有视频知识点,循序渐进,各个击破,作业总纲如下:下面是部分作业题目展示,每道题都有知识点说明,是检验学习效果的一大利器:(部分作业展示,为了防止盗图盗题对题干做了模糊处理)(部分作业展示,为了防止盗图盗题对题干做了模糊处理)(部分作业展示,为了防止盗图盗题对题干做了模糊处理)(部分作业展示,为了防止盗图盗题对题干做了模糊处理)(部分作业展示,为了防止盗图盗题对题干做了模糊处理)…… ……

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值