Извините за беспокойство, я пытаюсь передать 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;
}
...
Заранее спасибо за ваша помощь!