Qt 实现窗口登录、注销功能

实现该功能需要两个窗口,一个登录窗口,我这里叫QLanderDialog,一个主窗口,我这里叫MainWindow

首先,将窗口都加入到main.cpp,因为先要显示登陆窗口,故先让登陆窗口显示,主窗口不显示,然后给他们相互关联,代码如下:

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

    MainWindow w;
//    w.show();
    QLanderDialog l;
    l.show();

    QObject::connect(&l, SIGNAL(mainshow()), &w, SLOT(receiverLander()));
    QObject::connect(&w, SIGNAL(landerShow()), &l, SLOT(receiverLogout()));

    return a.exec();
}

接下来,登陆窗口,登陆窗口上有登录按钮,点击登录按钮触发mainshow()事件,代码如下

.cpp部分代码:
//关闭登录窗口,并发送显示主窗口事件
 this->close();
 emit mainshow();

//接收注销登录事件,执行显示登陆窗口
void QLanderDialog::receiverLogout()
{
 
 
    this->show();
}


.h要定义信号mainshow(),部分代码:signals: void mainshow(); // 显示主页面private slots: void receiverLogout();    //接收注销信号槽

然后,主界面窗口,主界面有注销按钮,点击注销按钮触发landershow()事件,代码如下:

.cpp部分代码:
//关闭主窗口,并发送注销事件landershow():
this->close();
emit landerShow();          //显示登录窗口 

//接收登录事件,执行显示主窗口
void MainWindow::receiverLander()
{
    this->show();
}


.h部分代码:
signals:
    void landerShow();        //显示登录窗口,即注销事件
 
 
private slots:
    void receiverLander();        //接收登录信号槽

这样即可实现登录和注销,也可用同方法实现界面切换。


猜你喜欢

转载自blog.csdn.net/qq_29844879/article/details/80216042
今日推荐