Pobranie danych z okienka

0

Mam na MainWindow przycisk - ten przycisk łączę ze slotem, w którym tworzę obiekt okienka logowania, o tak:

LogWindow *lw = new LoginWindow();
lw->show();

i od razu po tym show chcę pobrać dane wpisane do okienka - jednak pomimo tego, że coś wpiszę, wyświetla się pusty ciąg znaków :( (Do obiekty lw zapisuję pole login i hasło, a potem je pobieram i wyświetlam: qDebug() << lw->pobierzImie();) ale jak pisałem, nie wyświetla się nic.

0

Tak, zapomniałem dopisać - C++ i Qt

0

To mój projekt jakby ktoś chciał cos poradzić: http://www6.zippyshare.com/v/91618432/file.html

0

przed lw->show() daj:
lw->setWindowModality(Qt::WindowModal);

0

niestety nadal to samo - nic się nie wyświetla

0

Problem lezy calkowicie gdzie indziej. Mianowicie kod wykonuje sie krok po kroku tak? To wiadomo. Wiec w funkcji add() kiedy probujesz pobrac dane logowania z widgeta nie masz pewnosci ze widget wykonal funkcje getUserInput i te dane juz ma. Rozwiazanie jest bardzo proste.

Do klasy add person dodajesz sygnal

signals:
    void confirmed();

W funkcji getUserInput emitujesz sygnal po zamknieciu okna i pobraniu danych.

void addperson::getUserInput()
{
    login = ui->lbLogin->text();
    pass = ui->lbPass->text();
    close();
    emit(this->confirmed());
}

No i na koniec w funkcji add kiedy probujesz pobrac te dane do okna glownego trzeba zrobic sobie eventloop ktory poczeka na nadejscie sygnalu potwierdzenia pobrania danych.

void MainWindow::add()
{
    addperson *ap = new addperson();
    ap->show();

    QString login, pass;

    QEventLoop pause;
    connect(ap,SIGNAL(confirmed()),&pause,SLOT(quit()));
    pause.exec();

    login = ap->getLogin();
    pass = ap->getPass();

    qDebug() << login;
}

Jedna uwaga jeszcze. Jesli korzystasz z Qt nie uzywaj standardowych stringow czy streamow do konwersji danych, od tego masz QString i inne klasy, ktore oferuje Qt.

1 użytkowników online, w tym zalogowanych: 0, gości: 1