model view controller - MVC in qt and problem with interfaces -
model view controller - MVC in qt and problem with interfaces -
i want create view , pass controller via constructor.
so, i've created interface:
#include <qstring> class imainview { public: virtual ~imainview() {} virtual void setwindowtitle1(qstring &title) = 0; }; q_declare_interface(imainview, "imainview/1.0"); then created view:
class mainwindow : public qmainwindow, imainview { q_object q_interfaces(imainview) public: explicit mainwindow(qwidget *parent = 0); ~mainwindow(); void setwindowtitle1(qstring &title); private: ui::mainwindow *ui; }; mainwindow imainview. have pass instance of imainview controller, because each controller register view:
#include "maincontroller.h" maincontroller::maincontroller(imainview *v) { qstring title = "my application"; v->setwindowtitle1(title); } maincontroller::maincontroller() { } and got error: e:\pm\pm\mainapplication\imainview.h:13: error: c2259: 'imainview' : cannot instantiate abstract class due next members: 'void imainview::setwindowtitle1(qstring &)' : abstract
in c# works, in qt not.
thanks
sorry, wrong question. problem interface, abstract class (imainview.h):
#include <qstring> class imainview { public: virtual ~imainview() {} virtual void setwindowtitle1(qstring &title) = 0; }; q_declare_interface(imainview, "imainview/1.0"); and class have attached mainwindow header file (mainwindow.h):
#ifndef maincontroller_h #define maincontroller_h #include "imainview.h" //here error class maincontroller { public: //maincontroller(imainview *v); maincontroller(); }; #endif // maincontroller_h and got error:
e:\pm\pm\mainapplication\imainview.h:13: error: c2259: 'imainview' : cannot instantiate abstract class due next members: 'void imainview::setwindowtitle1(qstring &)' : abstract
thanks
you need implement setwindowtitle1 in class mainwindow, missed. that's plain c++ , not special qt.
model-view-controller qt interface
Comments
Post a Comment