Связать сигнал со слотом, не принадлежащим объекту? |
Здравствуйте, гость ( Вход | Регистрация )
Связать сигнал со слотом, не принадлежащим объекту? |
jojahti |
12.9.2009, 17:31
Сообщение
#1
|
Студент Группа: Участник Сообщений: 29 Регистрация: 28.8.2009 Пользователь №: 1030 Спасибо сказали: 0 раз(а) Репутация: 0 |
А если программка совсем небольшая, и функция не принадлежит никакому объекту? Каким образом можно привязать функцию к сигналу?
Ну тоесть: //============================ Цитата void function() // описание функции int main() { // создаются объекты интерфейса // QObject::connect(button, SIGNAL(clicked()), /*что ставить здесь???*/, SLOT(function())); } //============================ А компилятор говорит, что такое ему не катит, и просит указать объект. Сообщение отредактировал jojahti - 12.9.2009, 17:38 |
|
|
kwisp |
12.9.2009, 17:42
Сообщение
#2
|
астарожна ынтжинэр Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23 |
jojahti,
кому вот этот метод пренадлежит function() то и ставь. |
|
|
BRE |
12.9.2009, 17:48
Сообщение
#3
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
А если программка совсем небольшая, и функция не принадлежит никакому объекту? Каким образом можно привязать функцию к сигналу? Никаким. Испускать и принимать сигналы могут только объекты, причем объекты должны быть от классов наследников QObject. Сообщение отредактировал BRE - 12.9.2009, 17:49 |
|
|
jojahti |
12.9.2009, 18:10
Сообщение
#4
|
Студент Группа: Участник Сообщений: 29 Регистрация: 28.8.2009 Пользователь №: 1030 Спасибо сказали: 0 раз(а) Репутация: 0 |
BRE
Цитата Никаким. Испускать и принимать сигналы могут только объекты, причем объекты должны быть от классов наследников QObject. Ааааа. А вот если немного поизвращаться и создать структуру слотов, унаследованную от QObject? Я создал ). Соответственно в качестве источника слота указывал свою структуру, то бишь её объект. В функцию я передавал адрес виджета, с которым и извращался внутри функции. Но это дело не фурычит - зараза. Хотя компилятор ошибок не даёт. Почему? |
|
|
BRE |
12.9.2009, 18:23
Сообщение
#5
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
|
|
|
ViGOur |
12.9.2009, 23:25
Сообщение
#6
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
|
|
|
kwisp |
13.9.2009, 0:10
Сообщение
#7
|
астарожна ынтжинэр Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23 |
|
|
|
jojahti |
13.9.2009, 17:26
Сообщение
#8
|
Студент Группа: Участник Сообщений: 29 Регистрация: 28.8.2009 Пользователь №: 1030 Спасибо сказали: 0 раз(а) Репутация: 0 |
kwisp
Цитата тем более что ты уже его создал только написал struct а не class . Ну по идее это же не для объектов, а для хранения, потому логичнее структурой назвать. ViGOur
Выдаёт загадочную ошибку: Undefined reference to "vtable for myslots" Короче я лучше свой виджет с интерфейсом создам. |
|
|
Litkevich Yuriy |
13.9.2009, 18:16
Сообщение
#9
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
Текстовая версия | Сейчас: 29.4.2024, 1:22 |