关闭表格后,在主要功能中调用Qt表格

时间:2016-05-18 17:09:14

标签: qt

我是Qt的新手。我尝试将现有的Gtk2项目转换为Qt以获得跨平台支持。

我的代码如下:

// main.cpp
int success = 0;
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    success = 0;

    Logon *l = new Logon();
    l->show();

    if(success == 1) // success flag set in Logon.cpp when connection created !
    {
        Menu *m = new m();
        m->show();
    }

    return a.exec();
}

// logon.cpp
void Logon::OnOkBtnClicked(void)
{
    if(!ValConnection())
        return;
    success = 1;
    this->destroy();
}

执行代码时,连接成功创建&登录消失了。但是,菜单表单不会出现。

请帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

尝试使用带有lambda函数的SIGNAL / SLOT方法。

登录.h方:

class Logon : public QObject
{
Q_OBJECT
<...>
signals:
    void success(int scs);
public slots:
    bool ValConnection();
}

登录.cpp方:

// Where button creation 
connect(button, &QPushButton::clicked, this, &Logon::ValConnection);

// Somewhere on ValConnection 
if(true)
    emit success(1);

主要方面:

QObject::connect(l, &QLogon::success, [=] (int scs) { 
    if(scs == 1) {
        Menu *m = new m();
        m->show();
    }
});