LINUX.ORG.RU

Ответ на: комментарий от stigger

Проблема в следующем. Есть MDI приложение. В нем мне надо добавить кнопку на нажатие которой появлялось бы выпадающее меню с названиями всех окон в главном окне. По нажатию на одно из пунктов меню с названием окна, данное окно должно всплыть поверх остальных.

Пункты в меню естественно добавляются следующим образом. Создается QAction и добавляется в меню. Для всех QAction делается connection на один SLOT. Теперь проблема в том как передать в слот с какми окном ассоциирован данный пункт меню.

anonymous
()
Ответ на: комментарий от anonymous

QObject * QObject::sender () const   [protected]

Returns a pointer to the object that sent the signal, if called in a slot activated by a signal; otherwise it returns 0. The pointer is valid only during the execution of the slot that calls this function.

The pointer returned by this function becomes invalid if the sender is destroyed, or if the slot is disconnected from the sender's signal.

Warning: This function violates the object-oriented principle of modularity. However, getting access to the sender might be useful when many signals are connected to a single slot.

stigger
()
Ответ на: комментарий от wfrr

а если действия однотипные? зачем плодить сущности?

stigger
()
Ответ на: комментарий от wfrr

Имелось ввиду что все сигналы вызывают один и тотже слот.

А что на активацию каждого окна писать по слоту?

anonymous
()
Ответ на: комментарий от anonymous

если у тебя есть app и у него есть cut paste copy то нужно по слоту, или отказываться от слотов вообще и писать свой велрсипед + динамическое связывание действий, ну на всякий случай можешь глянуть примеры и поглядеть как там (пример браузера).

wfrr ★★☆
()
Ответ на: комментарий от gaa

> Почитай про QSignalMapper

О спасибо, буду пользоваться:)

vgudkov
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.