QT przkazywanie danych pomiedzy oknami

0

Witam!
pisze sobie aplikacje w Qt i mam okno glowne z przyciskiem i labelem, jak wcisne ten przycisk to otwiera mi sie kolejne okno z przyciskiem. Chce teraz zrobic tak, ze jak wcisne ten przycisk w nowo otwartm oknie, to zeby mi zmienil text labala w oknie glownym.
Z gory dziekuje za pomoc

0

połącz slot z sygnałem, w czym problem?

0

Nie chce byc upierdliwy, ale nie mam pojecia jak to zrobic, a chcialbym sie nauczyc.

mainwindow.h http://wklej.org/id/394667/
mainwindow.cpp http://wklej.org/id/394669/
form.h http://wklej.org/id/394671/
form.cpp http://wklej.org/id/394674/

Bede bardzo wdzieczy jak ktos by mi podpowiedzial.
Pozdrawiam.

0

Ok teraz jest konkretniej. Widzę, że jesteś w fazie kodowania na siłę, ale niech będzie.

class form : public QWidget
{
    Q_OBJECT
    
public:
    form();

signals:
    void descriptionChanged(const QString &desc);

private:
    QPushButton *button;
    
private slots:
    void zmien();
};
void form::zmien()
{
    emit descriptionChanged("nowy text");
}
class MainWindow : public QMainWindow
{
    Q_OBJECT
    
public:
    MainWindow();

private:
    QPushButton *button;
    QPushButton *button2;
    QLabel *label;
    form ppp;
    
public slots:
    void zmien(const QString &newTxt); // tu poprawka
    
private slots:
    void nowe();
};

Ok, można zrobić ładniej, ale lepsze rozwiązanie za bardzo ci namąci, a to i tak jest bardzo dobre. Zwróć uwagę, że główne okno nie musi wiedzieć co jest i co się dzieje w form, bo form wystawia tylko sygnał odpowiadający za jakąś funkcjonalność, a jak ta funkcjonalność wygląda można potem dowolnie zmieniać.

Reszta powinna być oczywista, więc nie zamieszczam.

0

wielkie dzieki ze szybka odpowiedz
zrobilem tak jak mi sie wydaje ze powinno byc, kompiluje sie ladnie, ale nie zmienia text. musialm cos popieprzyc. Jak byc mogl raz jeszcze rzucic okiem

mainwindow.h http://wklej.org/id/394737/
mainwindow.cpp http://wklej.org/id/394738/
form.h http://wklej.org/id/394739/
form.cpp http://wklej.org/id/394740/

wiekie dzieki
w.

0

brakuje ci połączenia slotu z mainwindow ze sygnałem z form
connect( &ppp, SIGNAL( descriptionChanged( const QString& ) ), this, SLOT( zmien( const QString& ) ) );

0

dziala :)
Dzieki wielkie

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