crossplatform.ru

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

4 страниц V  < 1 2 3 4 >  
Ответить в данную темуНачать новую тему
> сигналы и слоты, передача указателя на мой объект
kuler
  опции профиля:
сообщение 4.3.2009, 12:20
Сообщение #21


Танцор диско
***

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

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




Репутация:   -1  


SABROG, тут тяжело ибо Qwt используется
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kuler
  опции профиля:
сообщение 4.3.2009, 14:57
Сообщение #22


Танцор диско
***

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

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




Репутация:   -1  


зарисовки кода
//это слот который вызывается при клике правой кнопкой по графику, тут sender работает
void CAdvanceQwtPlot::OnPopup(QPoint)
{
    QPoint p = QCursor::pos();
    m_Popup->exec(QCursor::pos());//это собственно меню
    QObject* object = QObject::sender();
    if (object)
    {
        QString name = object->objectName();
        name = object->metaObject()->className();
    }
}
это чтобы при клике срабатывал слот вышеприведенный
connect(this, SIGNAL(customContextMenuRequested(QPoint)), SLOT(OnPopup(QPoint)));
в меню (m_Popup) вставлен экшен, который создан в дизайнере, обработчик такой, тут sender ничего не дает
//---------------------------------------------
void Form::on_aDelPlot_triggered()
{
    QObject* object = QObject::sender();
    if (object)
    {
        QString name = object->objectName();
        name = object->metaObject()->className();
    }
}


Сообщение отредактировал kuler - 4.3.2009, 14:57
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 4.3.2009, 15:21
Сообщение #23


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

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




Репутация:   23  


kuler,
по документации 3 варианта
1. слот вызван не сигналом. а напрямую(подозреваю не из другого слота вызванного по сигналу).
2. объект вызвавший слот уже удален
3. разъединено соединение сигнала со слотом.
+ недо вариант если обработчик просто метод а не слот и вызывается не внутри слота.

думаю от них надо отталкиваться.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kuler
  опции профиля:
сообщение 4.3.2009, 15:46
Сообщение #24


Танцор диско
***

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

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




Репутация:   -1  


Цитата(kwisp @ 4.3.2009, 15:21) *
слот вызван не сигналом. а напрямую(подозреваю не из другого слота вызванного по сигналу).

вызывается если просто кликнуть мышкой на графике а потом на пункте меню, код выше, нигде напрямую не вызываю
Цитата(kwisp @ 4.3.2009, 15:21) *
объект вызвавший слот уже удален

ну если говорить о графике то он однозначно не удален
Цитата(kwisp @ 4.3.2009, 15:21) *
разъединено соединение сигнала со слотом.

как же тогда вызывается слот?
Цитата(kwisp @ 4.3.2009, 15:21) *
недо вариант если обработчик просто метод

он создан автоматически в дизайнере
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 4.3.2009, 16:02
Сообщение #25


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


это определенно сигнально-слотовая связь, а вот почему Отправитель=0, я думаю потому-что действие (QAction) глобальное на приложение, а не этого виджета.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 4.3.2009, 16:04
Сообщение #26


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

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




Репутация:   23  


Цитата(kuler @ 4.3.2009, 15:46) *
ну если говорить о графике то он однозначно не удален

нет не график.... объект сигнализирующий.

Цитата(kuler @ 4.3.2009, 15:46) *
как же тогда вызывается слот?

если очередь. к примеру сигнал в очередь попал потом разъединение потом выполнение слота.
Цитата(kuler @ 4.3.2009, 15:46) *
он создан автоматически в дизайнере

как там завязано точно на сигнале?

Цитата(Litkevich Yuriy @ 4.3.2009, 16:02) *
а вот почему Отправитель=0, я думаю потому-что действие (QAction) глобальное на приложение, а не этого виджета.


нет я очень сомневаюсь в этом. легко проверить в принципе.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 4.3.2009, 16:07
Сообщение #27


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


kuler, можешь ui-файл дать?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kuler
  опции профиля:
сообщение 4.3.2009, 16:16
Сообщение #28


Танцор диско
***

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

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




Репутация:   -1  


Цитата(kwisp @ 4.3.2009, 16:04) *
нет не график.... объект сигнализирующий.

по идее это и есть график, ибо connect(this, SIGNAL(customContextMenuRequested(QPoint)), SLOT(OnPopup(QPoint)));
this - график
Цитата(Litkevich Yuriy @ 4.3.2009, 16:07) *
можешь ui-файл дать?

график у меня динамически создается
Цитата(kwisp @ 4.3.2009, 16:04) *
если очередь. к примеру сигнал в очередь попал потом разъединение потом выполнение слота.

да тут нормально, можно 50 раз нажать - 50 раз сработает слот
Цитата(kwisp @ 4.3.2009, 16:04) *
как там завязано точно на сигнале?

ну аутоматично создается
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 4.3.2009, 16:26
Сообщение #29


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

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




Репутация:   23  


Цитата(kuler @ 4.3.2009, 16:16) *
по идее это и есть график, ибо connect(this, SIGNAL(customContextMenuRequested(QPoint)), SLOT(OnPopup(QPoint)));
this - график


нет
где соединение с этим слотом on_aDelPlot_triggered()??

Сообщение отредактировал kwisp - 4.3.2009, 16:27
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 4.3.2009, 16:31
Сообщение #30


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


Цитата(kwisp @ 4.3.2009, 19:26) *
где соединение с этим слотом on_aDelPlot_triggered()??
оно автоматическое.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

4 страниц V  < 1 2 3 4 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


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




RSS Текстовая версия Сейчас: 30.11.2024, 7:44