LINUX.ORG.RU

Ошибка was not declared in this scope

 ,


0

1

Создал окно graphwindow

Добавил в него:

 QwtPlot *d_plot = new QwtPlot( this );

     setCentralWidget(d_plot); // привязать поле к границам окна

     d_plot->setTitle( "Qwt demonstration" ); // заголовок
     d_plot->setCanvasBackground( Qt::white ); // цвет фона

     // Параметры осей координат
     d_plot->setAxisTitle(QwtPlot::yLeft, "Y");
     d_plot->setAxisTitle(QwtPlot::xBottom, "X");
     d_plot->insertLegend( new QwtLegend() );


     // Включить сетку
     // #include <qwt_plot_grid.h>
     QwtPlotGrid *grid = new QwtPlotGrid(); //
     grid->setMajorPen(QPen( Qt::gray, 2 )); // цвет линий и толщина
     grid->attach( d_plot ); // добавить сетку к полю графика

     // Кривая
     //#include <qwt_plot_curve.h>
     QwtPlotCurve *curve = new QwtPlotCurve();
     curve->setTitle( "Demo Curve" );
     curve->setPen( Qt::blue, 6 ); // цвет и толщина кривой
     curve->setRenderHint
             ( QwtPlotItem::RenderAntialiased, true ); // сглаживание

     // Маркеры кривой
     // #include <qwt_symbol.h>
     QwtSymbol *symbol = new QwtSymbol( QwtSymbol::Ellipse,
         QBrush( Qt::yellow ), QPen( Qt::red, 2 ), QSize( 8, 8 ) );
     curve->setSymbol( symbol );

     // Добавить точки на ранее созданную кривую
     QPolygonF points;

            points << QPointF( 1.0, 1.0 ) // координаты x, y
         << QPointF( 1.5, 2.0 ) << QPointF( 3.0, 2.0 )
         << QPointF( 3.5, 3.0 ) << QPointF( 5.0, 3.0 );

      curve->setSamples( points ); // ассоциировать набор точек с кривой

      curve->attach( d_plot ); // отобразить кривую на графике


      // Включить возможность приближения/удаления графика
      // #include <qwt_plot_magnifier.h>
      QwtPlotMagnifier *magnifier = new QwtPlotMagnifier(d_plot->canvas());
      // клавиша, активирующая приближение/удаление
      magnifier->setMouseButton(Qt::MidButton);


      // Включить возможность перемещения по графику
      // #include <qwt_plot_panner.h>
      QwtPlotPanner *d_panner = new QwtPlotPanner( d_plot->canvas() );
      // клавиша, активирующая перемещение
      d_panner->setMouseButton( Qt::RightButton );

      // Включить отображение координат курсора и двух перпендикулярных
      // линий в месте его отображения
      // #include <qwt_plot_picker.h>

       // настройка функций
      QwtPlotPicker *d_picker =
              new QwtPlotPicker(
                  QwtPlot::xBottom, QwtPlot::yLeft, // ассоциация с осями
      QwtPlotPicker::CrossRubberBand, // стиль перпендикулярных линий
      QwtPicker::ActiveOnly, // включение/выключение
      d_plot->canvas() ); // ассоциация с полем

      // Цвет перпендикулярных линий
      d_picker->setRubberBandPen( QColor( Qt::red ) );

      // цвет координат положения указателя
      d_picker->setTrackerPen( QColor( Qt::black ) );

      // непосредственное включение вышеописанных функций
      d_picker->setStateMachine( new QwtPickerDragPointMachine() );

получил ошибку
/home/alexey/tion28-pro/graphwindow.cpp:27: error: ‘setCentralWidget’ was not declared in this scope
      setCentralWidget(d_plot); // привязать поле к границам окна
      ^~~~~~~~~~~~~~~~

В чем дело? Что нужно прописать в graphwindow.h?

хедер покажи от этого класса, а не произвольную копипасту..

P.S.: б-же.. тионами еще кто-то пользуется..

aol ★★★★★
()
Ответ на: комментарий от XMs

Как понимаю вот от этого

namespace Ui {
class graphWindow;
}

class graphWindow : public QDialog
{
    Q_OBJECT

public:
    explicit graphWindow(QWidget *parent = 0);
    ~graphWindow();

private:
    Ui::graphWindow *ui;
};

Alex_Golubev
() автор топика
Ответ на: комментарий от Alex_Golubev

Вот полностью хидер.

#ifndef GRAPHWINDOW_H
#define GRAPHWINDOW_H

#include <QDialog>
#include <graphwindow.h>


namespace Ui {
class graphWindow;
}

class graphWindow : public QDialog
{
    Q_OBJECT

public:
    explicit graphWindow(QWidget *parent = 0);
    ~graphWindow();

private:
    Ui::graphWindow *ui;
};

#endif // GRAPHWINDOW_H

Alex_Golubev
() автор топика
Ответ на: комментарий от deep-purple

Помогло.

Только мне не понятно от куда ты взял эту информацию?

Еще вопросик а как можно убрать верхнею рамку с дмиалогового окна ? Там где крестик.

И как можно сделать так чтобы окно не двигалось? Когда косаешься окна он двигается. зараза.

Alex_Golubev
() автор топика
Ответ на: комментарий от Alex_Golubev

от куда ты взял эту информацию?

из головы

брать верхнею рамку

гугл: qt window flags

чтобы окно не двигалось

навскидку не помню, явно решение есть - гугл в помощь.

deep-purple ★★★★★
()
Ответ на: комментарий от Alex_Golubev

Только мне не понятно от куда ты взял эту информацию?

из официальной документации, вестимо! https://doc.qt.io

aol ★★★★★
()
Ответ на: комментарий от Alex_Golubev

Либо выставить диалогу layout, либо сменить базовый класс на QMainWindow. Всё зависит от задачи

XMs ★★★★★
()

Скинь ссылку на урок или статью, откуда ты это взял? Или ты сам комментарии писал?

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