LINUX.ORG.RU

Не могу вставить наследника QTableView в QVBoxLayout через addWidget()

 ,


0

2

Что-то начал тупить, господа.

Есть у меня класс 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/4b956480d13bf01845d48033a9af860...

★★★★★

В файле с этим

  screenLayout->addWidget( attachTableController->getView() ); // <-- Здесь ошибка
хедер с AttachTableView подключен?

tekilla ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.