Seite 1 von 1

connect - Parameter mitgeben

Verfasst: 28. März 2012 11:42
von DBGTMaster
Hallo,

was ist die beste Möglichkeit, einen Slot einen Parameter mitzugeben:

Code: Alles auswählen

void BackupMonitor::contextMenuRequested(QPoint pos) {

    QVariant customerId = ui->backupView->currentIndex().data(Qt::UserRole + 1);

    QModelIndex i = ui->backupView->currentIndex();
    if (i.isValid()) {

        QList<QAction*> listActions;
        QAction *actionState10DaysAgo = new QAction("Jobs der letzten 10 Tage", this);
        listActions << actionState10DaysAgo;
        connect(actionState10DaysAgo, SIGNAL(triggered()), this, SLOT(showState10DaysAgo()) );

        // ...
        // ...

        QMenu::exec(listActions, ui->backupView->mapToGlobal(pos) + QPoint(0, 25) );
    }
}
Ich habe die Variable "customerId", welche ich dem SLOT "showState10DaysAgo()" übergeben möchte, wie stelle ich das am besten an? Direkt übergeben kann ich ja nichts...

Re: connect - Parameter mitgeben

Verfasst: 28. März 2012 11:59
von MiSi
Hallo,

du brauchst ein eigenes Signal, das den Parameter beinhaltet.
Die Parameteranzahl zwischen Slot und Signal muss immer gleich sein.

Viele Grüße

Re: connect - Parameter mitgeben

Verfasst: 28. März 2012 12:24
von DBGTMaster
MiSi hat geschrieben:Hallo,

du brauchst ein eigenes Signal, das den Parameter beinhaltet.
Die Parameteranzahl zwischen Slot und Signal muss immer gleich sein.

Viele Grüße
Das Signal selber wird von den QT Klassen geworfen (in diesem Falle QAction), da kann ich nicht wirklich was tun...

Re: connect - Parameter mitgeben

Verfasst: 28. März 2012 17:42
von Christian81
Zwei der vielen Möglichkeiten:
- QAction::data()/setData()
- QSignalMapper