2017-01-10 3 views
0

Мне интересно, есть ли способ сделать это.Qt Виджеты и производные классы

  1. Я создаю приложение Qt (используя Creator 3.6.1, Qt 5.6.0).
  2. Я добавляю виджет в главное окно. Например, QGraphicsView называется myView.
  3. создать класс C++, производный от QGraphicsView (называемый DerivedView)

код класса DerivedView:

class DerivedView : public QGraphicsView { 
... 

Я хотел бы мой новый класс DerivedView контролировать этот виджет. Я могу получить доступ к указателю на объект через ui-> myView. Есть ли способ сделать, чтобы мой производный класс работал с уже созданным QGraphicsView?

DerivedView * dView = ui->myView; 

Или мне не нужно выводить мой класс из QGraphicsView и просто добавлять указатель в качестве элемента данных?

class DerivedView { 
    QGraphicsView * gv; 
... 
+0

, поскольку это элемент суперкласса вы могли бросить его в свой класс – deW1

+1

Вы должны продвигать виджет: http://doc.qt.io/qt- 4,8/дизайнер-использование-заказ widgets.html – eyllanesc

ответ

1

Вы должны продвигать ваш QGraphicsView к DerivedView, для этого следует следующие шаги.

правой кнопкой мыши на QGraphicsView и выберите promote to ..:

enter image description here

И добавить имя класса и заголовок

enter image description here

, и нажмите Добав.

enter image description here

А затем нажмите на содействие. После этого ui->myView уже является членом класса DerivedView

Смежные вопросы