Название: Контекстное меню + Объект Отправлено: ¤Se®ega¤ от Апрель 30, 2009, 19:11 Подскажите как можно реализовать следуюющее:
на форме будет n-ное количество объектов класса QLabel( еще куча других объектов), в QLabel я буду отображаю n картинок.в контекстном меню будет пункт наподобе "изменить картинку".как мне отловить нажатие на конкретный объект и загрузить картинку именнов него?Если возможно, то поподробнее.Заранеее благодарен. :) Название: Re: Контекстное меню + Объект Отправлено: pastor от Апрель 30, 2009, 19:15 Цитировать void QWidget::customContextMenuRequested ( const QPoint & pos ) и Цитировать QObject * QObject::sender () const тебе в помощь )) Название: Re: Контекстное меню + Объект Отправлено: Alex Custov от Апрель 30, 2009, 19:18 решение как мне видится - наследуем QLabel, создаём в наследнике обработчике mousePressEevent() и выдаём сигнал по нажатию мыши. Промоутим все необходимые лейблы на форме к нашему наследнику. Соединяем сигналы каждого лейбла с одним слотом. В слоте берём qobject_cast<QLabel *>(sender()) и получаем указатель на лейбл, который вызвал сигнал, и далее делаем с ним что-нибудь нехорошее.
Решению попроще - installEventFilter() на каждый лейбл. И отлавливать нажатия в обработчике. Название: Re: Контекстное меню + Объект Отправлено: pastor от Апрель 30, 2009, 19:21 AX, контекстное меню вызывается по правой кнопке мыши. Сигнал уже есть, ничего переопределять ненужно.
Название: Re: Контекстное меню + Объект Отправлено: vaprele07 от Май 01, 2009, 02:34 QWidget::addAction
Название: Re: Контекстное меню + Объект Отправлено: ¤Se®ega¤ от Май 01, 2009, 13:19 по поводу тех же самых QLabel. У меня их n штук,и допустим мне надо для некоторых из них задать какой либо параметр (например видимость).Тоесть есть 20 штук, первые 10 я должен сделать невидимыми.Как мне написать функцию, чтобы 10 раз не писать label_(1-10).setVisible()?Как правильно сделать цикл.
Название: Re: Контекстное меню + Объект Отправлено: pastor от Май 01, 2009, 22:18 Хранить указатели на каждый экземпляр QLabel, например, в QList'е
Название: Re: Контекстное меню + Объект Отправлено: ¤Se®ega¤ от Май 02, 2009, 00:36 pastor, а можно поподробнее? ::)
Название: Re: Контекстное меню + Объект Отправлено: pastor от Май 02, 2009, 10:08 Можно )
Код
Код
Код
Название: Re: Контекстное меню + Объект Отправлено: ¤Se®ega¤ от Май 02, 2009, 11:30 а нельзя через label[ i ]?
Название: Re: Контекстное меню + Объект Отправлено: pastor от Май 04, 2009, 21:19 label_(1-10).setVisible() так?
нет. Название: Re: Контекстное меню + Объект Отправлено: ¤Se®ega¤ от Май 05, 2009, 10:50 через label[ i ]
Уже сделал. :) Название: Re: Контекстное меню + Объект Отправлено: pastor от Май 05, 2009, 12:16 через label[ i ] Уже сделал. :) Что значит через label[ i ]? Массив указателей? Название: Re: Контекстное меню + Объект Отправлено: ¤Se®ega¤ от Май 05, 2009, 12:27 объявляю класс Label *label[40];
Код
лейуты в общем примерно так ---- //Обращай внимание на форматирование и отображение поста Название: Re: Контекстное меню + Объект Отправлено: pastor от Май 05, 2009, 12:34 И в чем отличие от предложенного мной варианта?
Название: Re: Контекстное меню + Объект Отправлено: ¤Se®ega¤ от Май 05, 2009, 12:39 а там mtp Qlist'a просто;сразу указатели :) принципиально ничего нового, но мне как-то так проще было )))спасибо за идею
|