Название: Клик на QLabel Отправлено: KyberProtagonistes от Сентябрь 05, 2009, 13:30 Как оказалось, у КьюЛэйбл нет функции on_click(), on_activated(), on_pressed() или подобной. Её что, надо самому писать? Как вообще отмониторить клик на кюлейбле?
Читал, что нужно самому сделать класс-наследок от QLabel и добавить туда эту функцию (если честно, не знаю, как это сделать). Но смогу ли я тогда этот класс кинуть на форму через дизайнер? В общем, хочется как можно меньше ковыряться в коде... Название: Re: Клик на QLabel Отправлено: kitov от Сентябрь 05, 2009, 13:50 наследуй QLabel, декларируй сигнал напр. clicked() в mousePressEvent посылай его.
Название: Re: Клик на QLabel Отправлено: KyberProtagonistes от Сентябрь 05, 2009, 14:03 И этот "наследник" появится в дизайнере? Или его прийдётся в коде добавлять на форму? Нет другого способа? Если нет, то не могли бы вы набросок когда дать с этим наследованием и декларированием? А то я пока не совсем в этом шарю...
Название: Re: Клик на QLabel Отправлено: BRE от Сентябрь 05, 2009, 14:06 И этот "наследник" появится в дизайнере? В дизайнере каждому виджету можно сделать Promote to...Почитай/разберись с этим и многие проблемы уйдут. ;) Название: Re: Клик на QLabel Отправлено: zenden от Сентябрь 05, 2009, 14:12 label->installEventFilter(this) и лови событие QEvent::MouseButtonPress
Название: Re: Клик на QLabel Отправлено: KyberProtagonistes от Сентябрь 05, 2009, 14:30 Извиняюсь за заторможенность... :-[
Цитировать label->installEventFilter(this) А что делает ф-ия installEventFilter(this)?Цитировать лови событие QEvent::MouseButtonPress Как его ловить? :-\Название: Re: Клик на QLabel Отправлено: zenden от Сентябрь 05, 2009, 15:47 Форум существует не для того, чтобы разжевывать то, что чёрным по белому изложено в документации Qt http://doc.trolltech.com/4.5/qobject.html#installEventFilter
Код
Название: Re: Клик на QLabel Отправлено: KyberProtagonistes от Сентябрь 05, 2009, 15:49 УРА! Спасибо, выручил.
|