Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
|
gigabyte |
9.8.2009, 21:47
Сообщение
#1
|
|
Студент ![]() Группа: Участник Сообщений: 20 Регистрация: 9.8.2009 Пользователь №: 992 Спасибо сказали: 2 раз(а) Репутация: 1
|
Здравствуйте уважаемые знатоки. Опять же о тонкостях Qt(MinGW + Qt 4.5.1 + Eclipse + Qt Integration)
До этого момента использовал Qt plugin непосредственно т.е. QPluginLoader->instance() теперь же использую для создания компонентов фабрику т.е. Но тут появилась проблема, до того как перешел на использование фабрики в класс выглядел следующим образом: обратите внимание на метод void uiButtons(QList<int> btns); - метод интерфейса ViewInterface. Значит до использования фабрики этот метод работал нормально - т.е. возвращал Список идентификаторов кнопок которые следует отображать, сейчас же он возвращает пустой список. В чем может быть проблема? P.S. Как видите раньше использовалась функция возвращающая указатель на список но сейчас заменил на процедуру так как думал что проблема в указателях. Но этот трюк также не проходит |
|
|
|
|
BRE |
9.8.2009, 21:53
Сообщение
#2
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44
|
Тут дело не в Qt, а в C++. Почитай по поводу ссылок.
|
|
|
|
|
gigabyte |
9.8.2009, 22:03
Сообщение
#3
|
|
Студент ![]() Группа: Участник Сообщений: 20 Регистрация: 9.8.2009 Пользователь №: 992 Спасибо сказали: 2 раз(а) Репутация: 1
|
Цитата(BRE @ 9.8.2009, 21:53) Link Тут дело не в Qt, а в C++. Почитай по поводу ссылок. void uiButtons(QList<int>& btns); Если вы рекомендуете добавить & в метод, - то не помогло только что сделал Цитата(BRE @ 9.8.2009, 21:53) Link Тут дело не в Qt, а в C++. Почитай по поводу ссылок. void uiButtons(QList<int>& btns); Только что хотел попробовать через указатели т.е. А потом в коде програаммы: Тоже не помогло |
|
|
|
|
BRE |
9.8.2009, 22:03
Сообщение
#4
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44
|
Цитата(gigabyte @ 9.8.2009, 22:58) Link Если вы рекомендуете добавить & в метод, - то не помогло только что сделал А покажи, как реализован uiButtons. |
|
|
|
|
gigabyte |
9.8.2009, 22:08
Сообщение
#5
|
|
Студент ![]() Группа: Участник Сообщений: 20 Регистрация: 9.8.2009 Пользователь №: 992 Спасибо сказали: 2 раз(а) Репутация: 1
|
Цитата(BRE @ 9.8.2009, 22:03) Link А покажи, как реализован uiButtons. void tableview::uiButtons(QList<int>* btns) { if(!btns->isEmpty()) {btns->clear();} *btns = *this->uiBtns; //return this->uiBtns; } ААА блин опять [ code ] [ /code ] забыл |
|
|
|
|
Litkevich Yuriy |
9.8.2009, 22:13
Сообщение
#6
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94
|
Цитата(gigabyte @ 10.8.2009, 1:47) Link т.е. возвращал Список идентификаторов этот метод ничего не возвращает, он voidсделай так: тогда любому человеку будет понятно, что этот метод возвращает список кнопокЦитата(gigabyte @ 10.8.2009, 2:08) Link ААА блин опять [ code ] [ /code ] забыл Смотри Link
|
|
|
|
|
BRE |
9.8.2009, 22:27
Сообщение
#7
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44
|
А точно uiBtns не пустой в этот момент? Попробуй добавить вывод qDebug() << *uiBtns << *btns до и после присвоения. Цитата(Litkevich Yuriy @ 9.8.2009, 23:13) Link сделай так: тогда любому человеку будет понятно, что этот метод возвращает список кнопок +1 Думаю это будет самый лучший вариант.
|
|
|
|
|
gigabyte |
10.8.2009, 10:47
Сообщение
#8
|
|
Студент ![]() Группа: Участник Сообщений: 20 Регистрация: 9.8.2009 Пользователь №: 992 Спасибо сказали: 2 раз(а) Репутация: 1
|
Разобрался, заменил в коде который вызывает плагин приведение типов:
на P.S. Очень уж Qt щепетильно относится к привидению типов |
|
|
|
|
AD |
10.8.2009, 10:49
Сообщение
#9
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17
|
Цитата(gigabyte @ 10.8.2009, 11:47) Link P.S. Очень уж Qt щепетильно относится к привидению типов Ошибки во время компиляции легче найти и исправить, чем ошибки во время выполнения! Тем более, логические ошибки! |
|
|
|
|
Litkevich Yuriy |
10.8.2009, 19:23
Сообщение
#10
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94
|
Цитата(gigabyte @ 10.8.2009, 14:47) Link qobject_cast<ViewInterface *>(qvariant_cast<QObject *>(obj)); а зачем одно приведение типа вложено в другое?
|
|
|
|
![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 22.12.2025, 21:27 |