Сигнал и слот со сложным типом параметра, QStack<QPair <QPoint, QPoint> > |
Здравствуйте, гость ( Вход | Регистрация )
Сигнал и слот со сложным типом параметра, QStack<QPair <QPoint, QPoint> > |
greh |
19.10.2011, 7:29
Сообщение
#1
|
Студент Группа: Участник Сообщений: 48 Регистрация: 23.11.2009 Пользователь №: 1252 Спасибо сказали: 0 раз(а) Репутация: 0 |
Про компиляции на вот такой коннект не ругается:
Однако при приёме сигнала выдаёт в консоль следущее:
Что он хочет? Будет ли проще и лучше после получения сигнала забирать эти данные из объекта функцией? |
|
|
Snake174 |
19.10.2011, 8:00
Сообщение
#2
|
Студент Группа: Участник Сообщений: 89 Регистрация: 18.4.2011 Из: Миасс Пользователь №: 2613 Спасибо сказали: 9 раз(а) Репутация: 0 |
Добавь
1) #include <QMetaType> 2) qRegisterMetaType< QStack<QPair<QPoint,QPoint> > >("Stack"); Если не поможет, попробуй просто qRegisterMetaType<QStack>("Stack"), хотя врятли. |
|
|
greh |
19.10.2011, 9:08
Сообщение
#3
|
Студент Группа: Участник Сообщений: 48 Регистрация: 23.11.2009 Пользователь №: 1252 Спасибо сказали: 0 раз(а) Репутация: 0 |
Добавь 1) #include <QMetaType> 2) qRegisterMetaType< QStack<QPair<QPoint,QPoint> > >("Stack"); Если не поможет, попробуй просто qRegisterMetaType<QStack>("Stack"), хотя врятли. А как его потом использовать? В заголовочных файлах менять описание сиглналов/слотов? И вообще зачем всё это (почему оно не работает без этой магии)? |
|
|
wiz29 |
19.10.2011, 10:07
Сообщение
#4
|
Старейший участник Группа: Участник Сообщений: 600 Регистрация: 7.7.2010 Из: Санкт-Петербург Пользователь №: 1866 Спасибо сказали: 94 раз(а) Репутация: 12 |
Это надо для системы метакомпиляции Qt. В ассистанте есть подробные разъяснения зачем оно надо.
|
|
|
Snake174 |
19.10.2011, 10:45
Сообщение
#5
|
Студент Группа: Участник Сообщений: 89 Регистрация: 18.4.2011 Из: Миасс Пользователь №: 2613 Спасибо сказали: 9 раз(а) Репутация: 0 |
В заголовочных файлах менять описание сиглналов/слотов? Ничего менять не надо. qRegisterMetaType< QStack<QPair<QPoint,QPoint> > >("Stack"); поставь в конструктор или ещё куда, главное до посыла сигнала. (почему оно не работает без этой магии)? А почему "оно" вообще не делает всё за тебя? mainwindow.cpp
mainwindow.h
|
|
|
greh |
19.10.2011, 12:04
Сообщение
#6
|
Студент Группа: Участник Сообщений: 48 Регистрация: 23.11.2009 Пользователь №: 1252 Спасибо сказали: 0 раз(а) Репутация: 0 |
Ничего менять не надо. qRegisterMetaType< QStack<QPair<QPoint,QPoint> > >("Stack"); поставь в конструктор или ещё куда, главное до посыла сигнала. qRegisterMetaType< QStack<QPair<QPoint,QPoint> > >("Stack"); // не помогло qRegisterMetaType<QStack>("Stack"); // не компилируется error: no matching function for call to ‘qRegisterMetaType(const char [6])’ Я наверное вытащу через функцию эти данные, будет куда проще. |
|
|
Snake174 |
20.10.2011, 4:39
Сообщение
#7
|
Студент Группа: Участник Сообщений: 89 Регистрация: 18.4.2011 Из: Миасс Пользователь №: 2613 Спасибо сказали: 9 раз(а) Репутация: 0 |
Ну или как вариант ещё использовать typedef:
|
|
|
Текстовая версия | Сейчас: 22.11.2024, 10:44 |