问题
I am wondering if there is a way to do this.
- I create a Qt Application (using Creator 3.6.1, Qt 5.6.0).
- I add a widget to the main window. For example a QGraphicsView called myView.
- I create a C++ class derived from QGraphicsView (called DerivedView)
code of DerivedView class:
class DerivedView : public QGraphicsView {
...
I would like my new DerivedView class to control this widget. I can access a pointer to the object through ui->myView. Is there any way to do get my derived class to work with the already instantiated QGraphicsView?
DerivedView * dView = ui->myView;
Or do I need to not derive my class from QGraphicsView and just add a pointer as a data member?
class DerivedView {
QGraphicsView * gv;
...
回答1:
You should promote your QGraphicsView
to DerivedView
, for this follows the following steps.
Right click on QGraphicsView
and select promote to ..
:
And add the name of the class and header
And press add.
And then press on promote.
After this, ui->myView
is already a member of the DerivedView
class
来源:https://stackoverflow.com/questions/41577262/qt-widgets-and-derived-classes