|
0 / 0 / 0
Регистрация: 05.08.2008
Сообщений: 7
|
|
Проблема с видимостью объекта класса из функции05.08.2008, 11:30. Показов 4806. Ответов 11
Метки нет (Все метки)
Здравстуйте! Работаю со связкой QT+KDevelop. В функции main создается и отображается объект-основная форма. Программа работает с CAN-сетью. Далее стоит функция которая при получении сообщения из сети вызывает функцию-обработчик. Функция обработчик не является методом класса моей формы и не видит объект-форму. Вопрос:как из функции-обработчика добраться до формы и её компонентов?
0
|
|
| 05.08.2008, 11:30 | |
|
Ответы с готовыми решениями:
11
Возможно ли создание объекта шаблонного класса в функции этого класса?
Проблема с созданием объекта динамического массива Класса |
|
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
|
|
| 05.08.2008, 14:28 | |
|
Может, friend?
0
|
|
|
40 / 40 / 10
Регистрация: 27.06.2008
Сообщений: 118
|
||
| 05.08.2008, 16:19 | ||
|
А ты напиши свою функцию-обработчик как метод твоего класса, или так тебе не катит?!
Добавлено через 3 минуты
0
|
||
|
0 / 0 / 0
Регистрация: 05.08.2008
Сообщений: 7
|
||||||||||||||||||
| 05.08.2008, 18:08 [ТС] | ||||||||||||||||||
Регистрирует обработчик события. Параметры: chan - номер канала ev - события, возможные значения определены в заголовочном файле chai.h: CIEV_RC - получен CAN-кадр из сети ci_handler - обработчик события, имеет следующий прототип: void ci_handler(_s16 ev) Подставить свой метод из класса не получается из-за прототипа. Вот прототип:
![]()
![]() С friend пробывал, методы видно итак, а объект не видно.
0
|
||||||||||||||||||
|
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
|
|
| 05.08.2008, 18:47 | |
|
Переменной объекта не видно? Или к чему ты доступ хочешь получить? К свойствам объекта? Что тебе от объекта нужно? Когда делаешь с friend у тебя видны все внутренние структуры объекта, что-то еще требуется?
Если переменной не видно, то поменяй область видимости у перменной-объекта формы.
0
|
|
|
0 / 0 / 0
Регистрация: 05.08.2008
Сообщений: 7
|
||||||
| 05.08.2008, 19:02 [ТС] | ||||||
А frmMainImpl wndMain; можно только внутри main,там еще куча всего. Как еще можно поменять область видимости?
0
|
||||||
|
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
|
|
| 05.08.2008, 19:07 | |
|
Ну еще бы! Переменная формы у тебя видна только в main. Твоя функция вне main, поэтому она ничего не видит. Или вынеси переменную за границы main, или static попробуй. Тогда она будет видна во всем файле.
0
|
|
|
0 / 0 / 0
Регистрация: 05.08.2008
Сообщений: 7
|
|
| 05.08.2008, 19:12 [ТС] | |
|
За пределы вынести не могу-ругается KDevelop,static-пробовал не помогает.
0
|
|
|
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
|
|
| 05.08.2008, 19:20 | |
|
Заткни эту тупую неповоротливую кривую среду
нафих. Запускай g++ напрямую и компиль. Ты всегда собираешься идти на поводу у среды? Синтаксически ты спокойно можешь вынести за пределы функции. Я с тупостью KDevelop бороться не собираюсь. На что, хоть, ругается-то?Через friend ты доберешься до любого текстбокса, до любого свойства в классе. В чем проблема-то? P. S. Да, со static я перегнул. Он же сохраняет между вызовами... Выноси за пределы и исправляй то, на что эта среда жалуется. Будет тебе видна твоя переменная.
1
|
|
|
0 / 0 / 0
Регистрация: 05.08.2008
Сообщений: 7
|
|
| 06.08.2008, 11:28 [ТС] | |
|
KDevelop ругается так:QPaintDevice: Must construct QApplication before a QPaintDevice
А можно про friend хоть пару строчек кода, а то я что-то не пойму? И объект дружественной функцие передавать все равно придется?
0
|
|
|
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
|
|||||||||||
| 06.08.2008, 15:24 | |||||||||||
|
А почему бы тогда не сдалат совсем просто?
Использовать указатель. Вне main объявляем указатель на нашу форму. А в main собственно уже создаем ее.Выглядеть все это будет примерно так:
Добавлено через 6 минут К слову, возвращаясь назад, не вижу причины не установить в качестве обрабочика метод класса, как верно было подемечено Turbosega. Вот пример простенький:
![]() Добавлено через 41 минуту Можно еще создать функцию-wrapper для хэндлера. То есть, оболочку, которая будет хэндлером, и будет вызывать сами функции из класса. Вообщем-то три основных метода.
1
|
|||||||||||
|
0 / 0 / 0
Регистрация: 05.08.2008
Сообщений: 7
|
|
| 07.08.2008, 09:58 [ТС] | |
|
Vourhey огромное СПАСИБО всё получилось!
Указатель-просто как всё гениальное!Если вдруг кому-то понадобится информация по CAN-сетям обращайтесь!
0
|
|
| 07.08.2008, 09:58 | |
|
Помогаю со студенческими работами здесь
12
Проблема с видимостью HDD Проблема с видимостью переменных Управление видимостью объекта при наведении на него курсора Проблема с видимостью Окон в Spy++ Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|
|
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
|
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
|
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора
Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если. . .
|
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
|