Здравствуйте, гость ( Вход | Регистрация )
borune | Дата 7.1.2011, 0:16 |
Ага. Спасибо! Попробую) | |
Litkevich Yuriy | Дата 7.1.2011, 0:12 |
borune, смотри вариант Kagami, лучше наверное не придумаешь. | |
borune | Дата 6.1.2011, 21:42 |
то метод sender() возвращает адрес QAction, а не объекта. под объектом понимается виджет? (QAction - объект)да, да, конечно, я неправильно выразился. |
|
Litkevich Yuriy | Дата 6.1.2011, 19:48 |
то метод sender() возвращает адрес QAction, а не объекта. под объектом понимается виджет? (QAction - объект) |
|
Kagami | Дата 5.1.2011, 22:11 |
QSignalMapper? | |
borune | Дата 5.1.2011, 21:56 |
воспользовался твоим советом. Возник новый вопрос. Если я соединяю сигнал, эмитируемый при клике на объект, со слотом-обработчиком, то метод sender() возвращает верное значение указателя на объект. А если я создаю контекстное меню (создаю QAction'ы, соединяю их с соответствующими слотами и добавляю к своим объектам), то метод sender() возвращает адрес QAction, а не объекта. Как же быть с контекстным меню? |
|
borune | Дата 5.1.2011, 21:13 |
дада. я сам тока что нашел этот метод)) спасибо! | |
DEADHUNT | Дата 5.1.2011, 20:36 |
|
|
borune | Дата 5.1.2011, 20:28 |
Друзья, я еще не очень освоил кутэ, поэтому вынужден все время обращаться к вам. Вот и сейчас обращаюсь снова. Мне надо реализовать следующее. Есть созданное мной окно QDialog'а. При работе у пользователя есть возможность добавлять элементы в это окно нажатием кнопок (конкретно добавляемыми элементами являются наследники класса QLabel, ну вообщем будем считать, что объекты QLabel). Для работы с созданными объектами у меня есть список указателей на них. Что требуется сделать. Требуется добавить к каждому такому элементу контекстное меню по правому клику мышью. А в этом меню надо реализовать некоторые стандартные действия (редактировать, удалить и т.д.). Меню добавить несложно, но вопрос у меня вот в чем. Насколько я понимаю, схема работы меню такова: выбор пункта (который задается объектом класса QAction) в контекстном меню эмитирует какой-то сигнал, объявленный в классе QAction и его родителях. Для перехвата этого сигнала требуется подключить требуемый сигнал соответствующего объекта к слоту-обработчику. Но, опять же, насколько я понимаю, механизм сигналов не позволяет определить источник сигнала. А мне нужно знать, на какой именно из объектов нажал пользователь, потому что работа (редактирование, удаление и т.д.) должна происходить только с тем объектом, на который нажал пользователь. В идеале я бы хотел как-нибудь сделать так, чтобы при выборе пункта меню в слот приходил указатель на объект, по которому кликнул пользователь. Но как это сделать я никак не додумаюсь. Неужели иного способа, кроме как ловить координаты мыши в момент клика, и потом находить объект, который располагается по этим координатам, нельзя придумать? |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 19.4.2024, 5:59 |