想c++在qt中实现一个界面登录的功能

想c++在qt中实现一个界面登录的功能想写一个学生管理系统,有登录界面,可以选择不同的登录身份。怎么实现不同的身份登录对应的界面呢?... 想c++在qt中实现一个界面登录的功能想写一个学生管理系统,有登录界面,可以选择不同的登录身份。怎么实现不同的身份登录对应的界面呢? 展开
 我来答
Polaris北斗
2018-08-10 · TA获得超过3204个赞
知道大有可为答主
回答量:2530
采纳率:79%
帮助的人:794万
展开全部

供参考:

main.cpp 文件

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

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    CLoginDialog *loginDlg = new CLoginDialog();
    loginDlg->show();
    return app.exec();
}

clogindialog.h 文件

#ifndef CLOGINDIALOG_H
#define CLOGINDIALOG_H

#include <QDialog>
#include <QLabel>
#include <QPushButton>
#include <QComboBox>
#include <QLayout>

class CLoginDialog : public QDialog
{
    Q_OBJECT
public:
    explicit CLoginDialog(QWidget *parent = nullptr);

private slots:
    void showMainWindow();
private:
    QComboBox *userTypeCombo;

};

#endif // CLOGINDIALOG_H

clogindialog.cpp 文件

#include "clogindialog.h"
#include "cwidgeta.h"
#include "cwidgetb.h"

CLoginDialog::CLoginDialog(QWidget *parent) : QDialog(parent)
{
    QHBoxLayout *lineLayout1 = new QHBoxLayout();
    lineLayout1->addWidget(new QLabel(tr("登录类型")));
    userTypeCombo = new QComboBox();
    userTypeCombo->addItem(tr("教师"),0);
    userTypeCombo->addItem(tr("学生"),1);
    lineLayout1->addWidget(userTypeCombo);

    QHBoxLayout *lineLayout2 = new QHBoxLayout();
    lineLayout2->addStretch();
    QPushButton *loginBt = new QPushButton(tr("登录"));
    connect(loginBt,&QPushButton::clicked,this,&CLoginDialog::showMainWindow);
    lineLayout2->addWidget(loginBt);

    QVBoxLayout *mainLayout = new QVBoxLayout();
    mainLayout->addLayout(lineLayout1);
    mainLayout->addLayout(lineLayout2);

    setLayout(mainLayout);

}

void CLoginDialog::showMainWindow()
{
    if(userTypeCombo->currentData() == 0){
        CWidgetA *a = new CWidgetA();
        a->show();
    }else{
        CWidgetB *b = new CWidgetB();
        b->show();
    }

    close();
}

cwidgeta.h 文件

#ifndef CWIDGETA_H
#define CWIDGETA_H

#include <QMainWindow>

class CWidgetA : public QMainWindow
{
    Q_OBJECT
public:
    explicit CWidgetA(QWidget *parent = nullptr);
};

#endif // CWIDGETA_H

cwidgeta.cpp 文件

#include "cwidgeta.h"
#include <QLabel>
CWidgetA::CWidgetA(QWidget *parent) : QMainWindow(parent)
{
    setCentralWidget(new QLabel(tr("这是窗口A")));
}

cwidgetb.h


#ifndef CWIDGETB_H
#define CWIDGETB_H

#include <QMainWindow>

class CWidgetB : public QMainWindow
{
    Q_OBJECT
public:
    explicit CWidgetB(QWidget *parent = nullptr);
};

#endif // CWIDGETB_H

cwidgetb.cpp

#include "cwidgetb.h"
#include <QLabel>

CWidgetB::CWidgetB(QWidget *parent) : QMainWindow(parent)
{
     setCentralWidget(new QLabel(tr("这是窗口B")));
}
更多追问追答
追问
万分感谢
如果绘制绘图界面(.ui)文件,调用时是同样调用源文件就可以了吗
之事茶o
2018-08-10 · TA获得超过3609个赞
知道小有建树答主
回答量:442
采纳率:45%
帮助的人:50.8万
展开全部
1.提供登录界面(客户端)
2.服务器端用数据库来存储用户名和密码
3.注册时客户端将注册信息发送给服务器端,并进行验证,如果注册名可用,添加进数据库并返回客户端添加成功信息。
4.登录时客户端将登录信息发送给服务器端进行验证,服务端返回验证结果。
追问
可以说的具体点吗? 我主要是想知道怎么用不同的登录身份调用不同的操作界面
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
heart阿飞55
2018-08-10 · TA获得超过1086个赞
知道大有可为答主
回答量:3030
采纳率:82%
帮助的人:543万
展开全部
扩展文本编辑控件
检测输入并添加定时器
有输入时,先把输入保存起来
半秒后把新输入改为‘*’输出
原理就是这样的
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式