crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Сигнал и слот со сложным типом параметра, QStack<QPair <QPoint, QPoint> >
greh
  опции профиля:
сообщение 19.10.2011, 7:29
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 48
Регистрация: 23.11.2009
Пользователь №: 1252

Спасибо сказали: 0 раз(а)




Репутация:   0  


Про компиляции на вот такой коннект не ругается:
connect(pathFinder0, SIGNAL(pathFind(QStack<QPair<QPoint,QPoint> >)), this, SLOT(shortPathFound(QStack<QPair<QPoint,QPoint> >)));


Однако при приёме сигнала выдаёт в консоль следущее:
QObject::connect: Cannot queue arguments of type 'QStack<QPair<QPoint,QPoint> >'
(Make sure 'QStack<QPair<QPoint,QPoint> >' is registered using qRegisterMetaType().)


Что он хочет? Будет ли проще и лучше после получения сигнала забирать эти данные из объекта функцией?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Snake174
  опции профиля:
сообщение 20.10.2011, 4:39
Сообщение #2


Студент
*

Группа: Участник
Сообщений: 89
Регистрация: 18.4.2011
Из: Миасс
Пользователь №: 2613

Спасибо сказали: 9 раз(а)




Репутация:   0  


Ну или как вариант ещё использовать typedef:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QtGui/QMainWindow>
#include <QMetaType>

typedef QStack<QPair<QPoint, QPoint> > Stack;

class MainWindow : public QMainWindow
{
  Q_OBJECT

  public:
    MainWindow(QWidget *parent = 0);
    ~MainWindow();

signals:
  void pathFind( Stack );
};

#endif // MAINWINDOW_H


#include "mainwindow.h"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
  qRegisterMetaType<Stack>("Stack");

  QPushButton *pathFinder0 = new QPushButton("sdf", this);
  connect(pathFinder0, SIGNAL(pathFind(Stack)), this, SLOT(shortPathFound(Stack)));
}

MainWindow::~MainWindow()
{
}


Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


4 чел. читают эту тему (гостей: 4, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 17.2.2025, 2:14