ошибка: в классе нет члена с именем 'show'

0

.час

#include <QtQuick/QQuickPaintedItem>
#include <QColor>
#include <QLineF>
#include <QMutex>

class MyGraph : public QQuickPaintedItem
{
  Q_OBJECT

protected:
  virtual void componentComplete();

public:
  MyGraph             (QQuickPaintedItem *parent = 0);
  void paint          (QPainter *painter);
};

.cpp

#include <QApplication>

#include <iostream>
#include <QPen>
#include "qpainter.h"
#include <QtQml/qqmlengine.h>
#include "graph.h"

MyGraph :: MyGraph (QQuickPaintedItem *parent) : QQuickPaintedItem (parent) {}

void MyGraph :: paint (QPainter *painter)
{

}

void MyGraph::componentComplete ()
{
    QQuickPaintedItem::componentComplete ();
}

int main(int argc, char **argv)
{
  QApplication app (argc, argv);

  MyGraph g;
  g.resize(200, 200);
  g.show()

  return app.exec();
}

Ошибка:

:~/myQtGraph$ make
g++ -c -pipe -O2 -Wall -W -D_REENTRANT -fPIE -DQT_NO_DEBUG -DQT_QUICK_LIB -DQT_QML_LIB -DQT_WIDGETS_LIB -DQT_NETWORK_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I/opt/Qt5.1.0/5.1.0/gcc_64/mkspecs/linux-g++ -I. -I. -I/opt/Qt5.1.0/5.1.0/gcc_64/include -I/opt/Qt5.1.0/5.1.0/gcc_64/include/QtQuick -I/opt/Qt5.1.0/5.1.0/gcc_64/include/QtQml -I/opt/Qt5.1.0/5.1.0/gcc_64/include/QtWidgets -I/opt/Qt5.1.0/5.1.0/gcc_64/include/QtNetwork -I/opt/Qt5.1.0/5.1.0/gcc_64/include/QtGui -I/opt/Qt5.1.0/5.1.0/gcc_64/include/QtCore -I. -o graph.o graph.cpp
graph.cpp:11:6: warning: unused parameter ‘painter [-Wunused-parameter]
graph.cpp: In function ‘int main(int, char**):
graph.cpp:26:5: error: ‘class MyGraph has no member named ‘resize
graph.cpp:27:5: error: ‘class MyGraph has no member named ‘show
make: *** [graph.o] Error 1
  • 0
    Потому что QQuickPaintedItem действительно не show и не resize . Это не виджет.
Теги:
qt
qpainter

1 ответ

1
Лучший ответ

Не совсем уверен, почему вы ищете resize и show поскольку они не являются функциями- QQuickPaintedItem

Если вы заинтересованы в изменении размера, используйте код ниже. Используйте QSize для определения размера и используйте setContentsSize чтобы установить его.

MyGraph g;

QSize size;
size.setHeight(200);
size.setWidth(200);
g.setContentsSize(size);

Кроме того, вы можете использовать resetHeight() и resetWidth()

Ещё вопросы

Сообщество Overcoder
Наверх
Меню