Название: получение названия кнопки при нажатии Отправлено: niag от Июль 25, 2011, 14:44 всем привет!
совсем новичковый вопрос, но как-то так сложилось, что никогда с подобной проблемой не связывался. есть некоторый набор кнопок. в зависимости от того, какая кнопка была нажата появляется виджет (всегда один и тот же) с информацией, соответствующий нажатой кнопке. итак, как бы это выглядело, если бы была всего одна кнопка: Код: connect(theButton, SIGNAL(clicked()), this, SLOT(theSlot())); но так как кнопок много, в качестве параметра к слоту theSlot нужно указать нажатую кнопку, т. е. Код: public slots: как это можно реализовать? ведь в качестве параметра у сигнала ничего не должно быть. легкое гугление так и не дало ощутимых результатов :( Название: Re: получение названия кнопки при нажатии Отправлено: LisandreL от Июль 25, 2011, 14:48 Кастуем sender() в QPushButton*.
Название: Re: получение названия кнопки при нажатии Отправлено: niag от Июль 25, 2011, 15:10 Код: ... так? никогда просто с sender() не работал :) Название: Re: получение названия кнопки при нажатии Отправлено: LisandreL от Июль 25, 2011, 15:29 Код
Название: Re: получение названия кнопки при нажатии Отправлено: niag от Июль 25, 2011, 15:43 спасибо :)
Название: Re: получение названия кнопки при нажатии Отправлено: Странник от Июль 25, 2011, 17:24 а если использовать qobject_cast, то совсем по фэн-шую)
Название: Re: получение названия кнопки при нажатии Отправлено: Kolobok от Июль 25, 2011, 17:36 по фэн-шую - это QSignalMapper.
Название: Re: получение названия кнопки при нажатии Отправлено: niag от Июль 30, 2011, 20:34 попробовал всё вместе, не выходит (не переходит при нажатии в clickAction) :(:
Код
Код
это первая проблема. вторая: хотел сделать ряд кнопок в лэйауте (назовем его л0), при нажатии которых появляется какой-нибудь лэйаут (этот пусть будет л1) с виджитами, допустим имя кнопки и еще одна кнопка. и вот нажав на появившуюся кнопку должен появиться еще один лейаут (л2) с кнопкой, который перенес бы информацию о самой первой кнопке (которая находится в л0). после нажатия на кнопку из л2, должен появитсья еще один лэйаут с кнопкой, передающей инфомрацию о копке из л0 и т. д. рекурсия в общем :) как такое сделать? некоторые попытки уже были, но заканчивались они плачевно/ заранее спасибо за помощь Название: Re: получение названия кнопки при нажатии Отправлено: Kolobok от Июль 30, 2011, 21:03 Код: theSignalMapper->setMapping(testButton, testButton); Название: Re: получение названия кнопки при нажатии Отправлено: niag от Июль 30, 2011, 22:40 спасибо, с первой проблемой вроде бы понятно
Название: Re: получение названия кнопки при нажатии Отправлено: niag от Июль 31, 2011, 02:04 вторая проблема решена, так что помощь больше не требуется... пока ;D
|