Seite 1 von 1

[gelöst] QTabWidget SIGNAL currentChanged

Verfasst: 9. Oktober 2007 16:15
von NAR12
Hallo,

ich habe folgends Problem.
Mein Programm enthält ein TabWidget im Hauptfenster.
Nun möchte ich mit dem Wechsel der Tabs die StatusBar aktualisieren.
Hierzu bietet mir QTabWidget den Slot void currentChanged ( int index ).
Beim erstellen der StatusBar habe ich nun das SIGNAL mit meinem updateStatusbar SLOT des Hauptfensters verbunden.
Allerdings funktioniert die Geschichte nicht, wenn ich einen anderen tab anklicke. Habe ich da ein Verständnisproblem mit dem SIGNAL oder ist am Quellcode was nicht in Ordnung?
Die zweite SIGNAL-SLOT Verbindung funktioniert, allerdings wird modified() auch von TabCtrl bei Aktionen bedient.

Kann mit jemand helfen?

Gruß

Code: Alles auswählen

void MainWindow::createStatusBar()
{ //create status bar
    Inst_cursor_pos = new QLabel("Code: ");
    Inst_cursor_pos->setAlignment(Qt::AlignHCenter);
    Inst_cursor_pos->setMinimumSize(80,10);

    statusBar()->addWidget(Inst_cursor_pos, 0);

    connect(TabCtrl, SIGNAL(currentChanged(TabCtrl->currentIndex())), this, SLOT(updateStatusBar()));
    connect(TabCtrl, SIGNAL(modified()), this, SLOT(updateStatusBar()));
}

Re: QTabWidget SIGNAL currentChanged

Verfasst: 9. Oktober 2007 16:30
von Volker
NAR12 hat geschrieben:

Code: Alles auswählen

    connect(TabCtrl, SIGNAL(currentChanged(TabCtrl->currentIndex())), this, SLOT(updateStatusBar()));
So verbindet man Signale und Slots nicht.

Verfasst: 9. Oktober 2007 16:34
von caligano
Schau mal in die Doku: void QTabWidget::currentChanged ( int index )

D.h. dass als Parameter ein int übergeben wird, also z.B. so:

Code: Alles auswählen

    connect(TabCtrl, SIGNAL(currentChanged(int)), this, SLOT(updateStatusBar())); 

[gelöst] QTabWidget SIGNAL currentChanged

Verfasst: 9. Oktober 2007 16:50
von NAR12
@caligano:
Mist, in der Duko hatte ich es so gelesenenals wenn man den Index mit übergeben müsste. Auf die Idee nur int zu verwenden kam ich da gar nicht. Jetzt geht es. Danke.

@Volker: Aha und wie dann?


Gruß

Verfasst: 9. Oktober 2007 23:32
von Volker
Ich hatte gehofft, das Du durch meine Eingrenzung auf die fehlerhafte Zeile selbst drauf kommst. Aber caligano hat Dir das Erfolgserlebnis wohl nicht gegönnt :wink: