Russian Qt Forum

Qt => Вопросы новичков => Тема начата: sk9 от Март 26, 2012, 00:29



Название: Событие для виджета
Отправлено: sk9 от Март 26, 2012, 00:29
Здравствуйте, никак не могу понять, как добавить событие к виджету. Везде в примерах что-то на подобии:
class Widget : public QLabel {
public:
    Widget(QWidget* pwgt = 0);
protected:
    virtual void mousePressEvent  (QMouseEvent* pe);
...
не могу понять смысл в ": public QLabel"

Моя программа выглядит так:
class Widget : public QWidget
{
    Q_OBJECT
private:
    QLabel* l_key;
    QLineEdit* le_file;
public:
    Widget(QWidget *parent = 0);
...
в файле реализации осуществляется:
l_key = new QLabel;
le_file = new QLineEdit;

Как мне добавить какое-нибудь событие для le_file, как его объявлять?


Название: Re: Событие для виджета
Отправлено: mutineer от Март 26, 2012, 00:31
не могу понять смысл в ": public QLabel"
Это называется наследование


http://doc.crossplatform.ru/qt/4.7.x/html-qt/qwidget.html
тут в разделе "Защищенные функции" перечислены обработчики событий (функции, заканчивающиеся на Event). Переопределяешь нужную функцию в своем наследнике и вписываешь туда реакцию на событие


Название: Re: Событие для виджета
Отправлено: mutineer от Март 26, 2012, 10:02
А что ты вообще сделать хочешь? в терминах поведения


Название: Re: Событие для виджета
Отправлено: kambala от Март 26, 2012, 12:49
скорее всего тебе надо посмотреть на доступные сигналы и подписаться на один из них