tab eines qtabwidget neu berechnen

Alles rund um die Programmierung mit Qt
Antworten
Chri
Beiträge: 100
Registriert: 23. Juni 2017 12:32

tab eines qtabwidget neu berechnen

Beitrag von Chri »

Hi

Habe ein qtabwidget mit mehreren Tabs(mehreren ui's).
Im tab3 verändere ich eine globale Variable (Bitte keine Diskussion bezügl. Verwendung globaler Variablen)
Das Problem: Anscheinend werden beim Aufrufen des tabwidgets alle seine Tabs auch gleich geladen und durch Herumklicken der verschiedenen Tabs mache ich nur das eine oder andere sichtbar.

Im tab3 verändere ich nun eine globale Variable.
tab4 verwendet die globale Variable, bekommt aber nicht mit, dass diese verändert wurde.
Signal-Slot auf eine Variable (Ein Nicht-Objekt) ist - soweit ich es mitbekommen habe - nicht möglich.
Wie kann ich tab4 neu berechnen?
Da mir nichts anderes einfiel: Der Wechsel von tab3 nach tab4 löst ja ein Event aus
und in dem event: ui->tabWidget_3->currentWidget()->Neuberechnen????

LG
Chri
Die Sprache des Technikers ist die Skizze
hilefoks
Beiträge: 144
Registriert: 13. März 2008 16:09

Re: tab eines qtabwidget neu berechnen

Beitrag von hilefoks »

QTabWidget hat ein Signal currentChanged(int index). Das könntest du benutzen um festzustellen, das du auf den tab4 wechselst.
Und wenn du auf den Tab wechselst setzt du die globale Variable selbst neu.

Im Prinzip:

Code: Alles auswählen

connect(ui->tabWidget, &QTabWidget::currentChanged, [this](int index) {
    if(index == ui->tabWidget->indexOf(ui->tab4)) {
        ui->tab4->lineEdit->setText(meine_globale_variable);
    }
});
MfG
Hilefoks
Chri
Beiträge: 100
Registriert: 23. Juni 2017 12:32

Re: tab eines qtabwidget neu berechnen

Beitrag von Chri »

Danke

Hab noch Folgendes geändert:
In tab4 fast Alles, was nach dem ui->setupUi(this) kommt, in eine public Funktion "tabelleStern" gepackt.
Somit ist auch das Auslesen und die Verarbeitung der globalen Variablen in dieser Funktion

Code: Alles auswählen

connect(ui->tabWidget, &QTabWidget::currentChanged, [this](int index) {
    if(index == ui->tabWidget->indexOf(ui->tab4)) {
        ui->tab4->tabellestern();
    }
});
Dadurch wird tab4 jedesmal neu berechnet, incl. aktueller globaler Variable

LG
Chri
Die Sprache des Technikers ist die Skizze
Chri
Beiträge: 100
Registriert: 23. Juni 2017 12:32

Re: tab eines qtabwidget neu berechnen

Beitrag von Chri »

Habe noch ähnliche Frage:
Wie kann ich von einem tab auf das andere tab zugreifen?

Habe in tab4 die Function tabellestern() von zuvor
und möchte diese nun auch von tab3 aus auslösen:

Code: Alles auswählen

connect(ui->rB_WWmHZG, SIGNAL(pressed()), ??????? , SLOT(tabellestern()));
LG
chri
Die Sprache des Technikers ist die Skizze
Antworten