Как поместить QGraphicsProxyWidget в QGraphicsGridLayout? - PullRequest
1 голос
/ 19 сентября 2019

Я работаю над шахматным проектом над Qt 5 .Я создал доску как QWidget и теперь хочу добавить анимированные шахматные фигуры .Вот почему я хочу добавить свою шахматную доску в графическом представлении.Я посмотрел на документацию Qt и несколько других веб-сайтов.и написал следующий код:

    QGraphicsProxyWidget* pProxy = scene->addWidget(board);
    QGraphicsGridLayout *layout = new QGraphicsGridLayout;
    layout->addItem(pProxy,0,0);
    QGraphicsWidget *form = new QGraphicsWidget;
    form->setLayout(layout);
    scene->addItem(form);

Я получаю сообщение об ошибке:

no matching function for call to ‘QGraphicsGridLayout::addItem(QGraphicsProxyWidget*&, int, int)

Я не смог найти, как это исправить,Нужно ли использовать в качестве QGraphicsWidget своего рода приставку или написать "доску"?

1 Ответ

0 голосов
/ 20 сентября 2019

Я рискну угадать и предположу, что вы забыли использовать ...

#include <QGraphicsProxyWidget>

В этом случае единственное знание, которым обладает компилятор QGraphicsProxyWidget, - это его предварительное объявление.Следовательно, он не знает, что QGraphicsProxyWidget на самом деле наследует от QGraphicsLayoutItem - как требуется для первого аргумента QGraphicsGridLayout::addItem - и генерирует сообщение об ошибке.Если вы добавите #include, этого должно быть достаточно.

...