использовать указатель QVector в слотах и ​​сигналах - PullRequest
0 голосов
/ 10 февраля 2020

Извините за беспокойство, я пытаюсь передать QVector как указатель из MainWindow в Dialog, код работает, но вывод говорит: QObject::connect: No such slot SystrayDialog::receiveSystrayIcons(<QVector<SystrayIconsData>*)

Я не все понимаю о сигналах и слотах Тем не менее, я делаю упражнения, чтобы хорошо понять, пожалуйста, найдите мой код:

mainwindow.h

...
signals:
    // transmit objects to dialogs here
    void emitSystrayIcons(QVector<systrayIconsData> *icons);
...

mainwindow. cpp

...
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
...
// initialize Systray Settings Window Dialog
    sDialog = new SystrayDialog(this);

    // Create Connectors from and to dialog here
    connect(this, SIGNAL(emitSystrayIcons(QVector<systrayIconsData>*)), sDialog, SLOT(receiveSystrayIcons(QVector<SystrayIconsData>*)));
}
// Slots
void MainWindow::showSystraySettingsDialog()
{
    sDialog->setModal(false);
    //sDialog->setAttribute(Qt::WA_DeleteOnClose);
    sDialog->show();
    sDialog->raise();
    sDialog->activateWindow();
}
...

systrayDialog.h

class SystrayDialog : public QDialog
{
    Q_OBJECT
...
// Icon Datas
    QVector<systrayIconsData> *stIcons;
...
private slots:
    // receive objects/data from MainWindow or other component here
    void receiveSystrayIcons(QVector<systrayIconsData> *icons);
}

systrayDialog. cpp

...
// Slots
void SystrayDialog::receiveSystrayIcons(QVector<systrayIconsData> *icons)
{
    stIcons = new QVector<systrayIconsData>();
    stIcons = icons;
}
...

Заранее спасибо за ваша помощь!

...