Что-то начал тупить, господа.
Есть у меня класс AttachTableView, являющийся наследником QTableView, а следовательно и QWidget:
class AttachTableView : public QTableView
{
Q_OBJECT
public:
AttachTableView(QWidget *parent=0);
virtual ~AttachTableView();
Ссылку на экземпляр этого класса вставляю в QVBoxLayout:
screenLayout=new QVBoxLayout();
screenLayout->addWidget(toolsLine);
screenLayout->addWidget( attachTableController->getView() ); // <-- Здесь ошибка
setLayout(screenLayout);
Где метод получения ссылки на экземпляр выглядит так:
AttachTableView *AttachTableController::getView(void)
{
return view; // Это ссылка на экземпляр вида
}
Ошибка выглядит так:
AttachTableScreen.cpp
../mytetra_develop/src/views/attachTable/AttachTableScreen.cpp: In member function 'void AttachTableScreen::assembly()':
../mytetra_develop/src/views/attachTable/AttachTableScreen.cpp:73:59: error: no matching function for call to 'QVBoxLayout::addWidget(AttachTableView*)'
screenLayout->addWidget(attachTableController->getView());
^
../mytetra_develop/src/views/attachTable/AttachTableScreen.cpp:73:59: note: candidate is:
In file included from C:/tools/qt/qt5.4.2/5.4/mingw491_32/include/QtWidgets/QVBoxLayout:1:0,
from ../mytetra_develop/src/main.h:16,
from ../mytetra_develop/src/views/attachTable/AttachTableScreen.cpp:1:
C:/tools/qt/qt5.4.2/5.4/mingw491_32/include/QtWidgets/qboxlayout.h:67:10: note: void QBoxLayout::addWidget(QWidget*, int, Qt::Alignment)
void addWidget(QWidget *, int stretch = 0, Qt::Alignment alignment = 0);
^
C:/tools/qt/qt5.4.2/5.4/mingw491_32/include/QtWidgets/qboxlayout.h:67:10: note: no known conversion for argument 1 from 'AttachTableView*' to 'QWidget*'
Кратко:
no known conversion for argument 1 from 'AttachTableView*' to 'QWidget*'
Раньше я такое много раз делал и прокатывало, теперь почему-то не может автоматически преобразовать тип.
Код проекта (Qt only):
https://github.com/xintrea/mytetra_dev/tree/attachFilesКоммит с проблемой:
https://github.com/xintrea/mytetra_dev/commit/4b956480d13bf01845d48033a9af860ed4dc692d