crossplatform.ru

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

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


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

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

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




Репутация:   23  


Цитата(Litkevich Yuriy @ 4.3.2009, 16:31) *
оно автоматическое.

думаю причина в нем.
надо писать простой тест и смотреть.

еще вопрос. почему так пишешь?
Цитата(kuler @ 4.3.2009, 14:57) *
QObject* object = QObject::sender();


почему не
QObject* object = this->sender();
||
QObject* object = sender();

???
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 4.3.2009, 17:05
Сообщение #32


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

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




Репутация:   34  


Я думал над этим, но разницы нет, т.к. тут явно вызывается метод базового класса QObject, также как мы вызываем QWidget::paintEvent(event); или QWidget::mousePressEvent(event); внутри наших обработчиков.

Я предлагаю посмотреть что на это пишет дебаггер и соответственно собрать программу в debug режиме.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kuler
  опции профиля:
сообщение 4.3.2009, 17:09
Сообщение #33


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

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

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




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


Цитата(kwisp @ 4.3.2009, 16:48) *
еще вопрос. почему так пишешь?

ну это все имеет одно и тоже значение, просто что первое на ум взбрело
Цитата(kwisp @ 4.3.2009, 16:26) *
где соединение с этим слотом on_aDelPlot_triggered()??
Цитата(SABROG @ 4.3.2009, 17:05) *
Я предлагаю посмотреть что на это пишет дебаггер и соответственно собрать программу в debug режиме.

в какой момент?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 4.3.2009, 17:19
Сообщение #34


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

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




Репутация:   34  


В момент работы программы. Просто запускаешь её, жмахаешь по кнопочкам, чтобы дошло до момента, где sender() на ноль проверяется и смотришь в консоль, нету ли там ругательств.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kuler
  опции профиля:
сообщение 4.3.2009, 17:28
Сообщение #35


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

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

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




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


Цитата(SABROG @ 4.3.2009, 17:19) *
нету ли там ругательств.

нету
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 4.3.2009, 17:33
Сообщение #36


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

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

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




Репутация:   23  


kuler,
попробуй тест написать.
одно соединение автоматическое одно ручное. отправитель один и тотже получатель тот же но разные слоты один соединен автоматически другой ручками. и посмотри что дает sender() в этих двух случаях.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 4.3.2009, 18:11
Сообщение #37


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

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

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




Репутация:   94  


Цитата(kwisp @ 4.3.2009, 19:48) *
еще вопрос. почему так пишешь?
Цитата(kuler @ 4.3.2009, 14:57)
QObject* object = QObject::sender();
Цитата(kuler @ 4.3.2009, 20:09) *
ну это все имеет одно и тоже значение, просто что первое на ум взбрело
а вто и нет, метод QObject * QObject::sender () const не статический, и что он должен вернуть применительно к этому слоту?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 4.3.2009, 18:15
Сообщение #38


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

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




Репутация:   34  


Цитата(Litkevich Yuriy @ 4.3.2009, 18:11) *
Цитата(kwisp @ 4.3.2009, 19:48) *
еще вопрос. почему так пишешь?
Цитата(kuler @ 4.3.2009, 14:57)
QObject* object = QObject::sender();
Цитата(kuler @ 4.3.2009, 20:09) *
ну это все имеет одно и тоже значение, просто что первое на ум взбрело
а вто и нет, метод QObject * QObject::sender () const не статический, и что он должен вернуть применительно к этому слоту?

Дык ежели это вызывается внутри класса наследника QObject'a, скажем в QWidget'e, то это всего-лишь вызовет метод sender() базового класса. Другое дело, если бы в таком виде вызывалось откуда-нибудь из блока main.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 4.3.2009, 18:19
Сообщение #39


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

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

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




Репутация:   23  


Цитата(Litkevich Yuriy @ 4.3.2009, 18:11) *
а вто и нет, метод QObject * QObject::sender () const не статический, и что он должен вернуть применительно к этому слоту?

не согласен.

я спросил лишь потому что обычно так не пишут.
на самом деле это одно и тоже. Form наследник QObject и ему доступны его методы и этим способом тоже.
док-во это то что в первом слоте все нормально.

З.Ы просто если вдруг не знали еще
можно статические методы вызывать так:
object->staticMethod();

& так
Object::staticMethod();


Сообщение отредактировал kwisp - 4.3.2009, 18:22
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




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