Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: CynicVest от Апрель 21, 2011, 22:08



Название: Создать класс-наследник QGraphicsView
Отправлено: CynicVest от Апрель 21, 2011, 22:08
Здравствуйте, хотела бы разобраться с наследованием классов в Qt Creator. Создать класс, унаследованный от QGraphicsView, MyMapView, идентичный QGraphicsView, только с дополнительными слотами (стандартных не хватает для, например, масштабирования).
Крейэйтор ругается на конструктор при:
Код:
#ifndef QMAPVIEW_H
#define QMAPVIEW_H

#include <QGraphicsView>

class QMapView: public QGraphicsView
{
    Q_OBJECT
public:
    QMapView(QWidget *pwgt=0): QGraphicsView (QWidget *pwgt = 0)
    {

    }

public slots:
    void slotZoomIn()
    {
        scale(1.1, 1.1);
    }

    void slotZoomOut()
    {
        scale(1/1.1, 1/1.1);
    }

    //слот навигации
};
#endif // QMAPVIEW_H
конструктор хочется такой, без graphicsscene.

 еще все бы ничего, но при проектировании интерфейса Qt Designer непонятно каким образом на форму поставить именно MyMapView, если преобразовать GraphicsView к MyMapView жуткая ругань при сборке..

PS. Помогите пожалуйста с этой кашей в голове ;(


Название: Re: Создать класс-наследник QGraphicsView
Отправлено: madRoger от Апрель 21, 2011, 22:37
Код:
QMapView(QWidget *pwgt=0): QGraphicsView (QWidget *pwgt = 0)
Попробуйте так:
Код:
QMapView(QWidget *pwgt=0): QGraphicsView (pwgt)

Рекомендую разделять объявление класса и реализацию на .h и .cpp.

Чтобы добавить свой виджет в Designer, нужно собрать плагин. Пример можно глянуть тут.
http://www.prog.org.ru/topic_7343_0.html (http://www.prog.org.ru/topic_7343_0.html)


Название: Re: Создать класс-наследник QGraphicsView
Отправлено: CynicVest от Апрель 21, 2011, 23:37
оу, все получилось, спасибо)