GF
Glep Fingerman17 февраля 2018 г. 14:09

QGraphicsView

QGraphicsView

Здравствуйте, хочу создать кастомные компонент для формирования диаграмм на базе

QGraphicsView

но при компиляции выходит ошибка. Коды класса прилагаю

#include <QObject>
#include <QWidget>
#include <QGraphicsView>
#include <QMessageBox>
#include <QDebug>
#include <QString>
//
#include "qcustomgraphicsview.h"

QCustomGraphicsView::QCustomGraphicsView(QObject *parent) : QGraphicsView(parent)
{

}

QCustomGraphicsView::~QCustomGraphicsView()
{

}

#ifndef QCUSTOMGRAPHICSVIEW_H
#define QCUSTOMGRAPHICSVIEW_H

#include <QObject>
#include <QWidget>
#include <QGraphicsView>
#include <QMessageBox>
#include <QDebug>
#include <QString>

//----------------------------------------------------------
// структура описания связи между объектами,
// которые должны обмениваться данными
// (вычисления, изображения, графики и т.д.)
struct Connections{
    // идентификатор связи
    QString IDConnect;
    // имя компонента-отправителя
    QString senderName;
    // исходящий тип данных
    QString DataTypeOut;
    // имя компонента-получателя
    QString RecieverName;
    // входящий тип данных
    QString DataTypeIn;
    // стиль отображения связи
    QString StyleConnection;
    // активность связи
    bool ActivityConnect = true;
};
//----------------------------------------------------------
// класс описания кастомного графического поля
class QCustomGraphicsView : public QGraphicsView
{
    Q_OBJECT
public:
    // конструктор класса кастомного поля отрисовки схем ТРСО
    explicit QCustomGraphicsView(QObject *parent = 0);
    ~QCustomGraphicsView();

signals:
    // сигнал отправки тестового сообщения
    void sendTestMessage(QString txtMsg);

public slots:
    // слот получения данных
    QString getData(QString dataGetter);
    // слот получения данных о получателе данных
    QString getReciever(QString NameReciever, QString DataTypeIn);
    // слот получения данных об отправителе
    QString getSender(QString NameSender, QString DataTypeOut);

};

#endif // QCUSTOMGRAPHICSVIEW_H
С уважением, Константин.
Рекомендуем хостинг TIMEWEB
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.

Вам это нравится? Поделитесь в социальных сетях!

1
Evgenii Legotckoi
  • 18 февраля 2018 г. 18:34

Добрый день!

QGraphicsView - это виджет, а значит, что в качестве парента для него выступает QWidget, а не QObject.
То есть из ошибок, которые сразу бросаются в глаза в этом коде, здесь присутствует ошибка в записи конструктора.
Правильная запись будет такая
explicit QCustomGraphicsView(QWidget *parent = nullptr);
И соответственно реализация конструктора будет следующей
QCustomGraphicsView::QCustomGraphicsView(QWidget *parent) : QGraphicsView(parent)
{ 
}

    Комментарии

    Только авторизованные пользователи могут публиковать комментарии.
    Пожалуйста, авторизуйтесь или зарегистрируйтесь
    Ua

    Qt - Тест 001. Сигналы и слоты

    • Результат:84баллов,
    • Очки рейтинга4
    Ua

    Qt - Тест 001. Сигналы и слоты

    • Результат:42баллов,
    • Очки рейтинга-8
    ОК

    Qt - Тест 001. Сигналы и слоты

    • Результат:47баллов,
    • Очки рейтинга-6
    Последние комментарии
    ИМ
    Игорь Максимов22 ноября 2024 г. 21:51
    Django - Урок 017. Кастомизированная страница авторизации на Django Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
    Evgenii Legotckoi
    Evgenii Legotckoi31 октября 2024 г. 23:37
    Django - Урок 064. Как написать расширение для Python Markdown Добрый день. Да, можно. Либо через такие же плагины, либо с постобработкой через python библиотеку Beautiful Soup
    A
    ALO1ZE19 октября 2024 г. 17:19
    Читалка fb3-файлов на Qt Creator Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
    ИМ
    Игорь Максимов5 октября 2024 г. 16:51
    Django - Урок 064. Как написать расширение для Python Markdown Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
    d
    dblas55 июля 2024 г. 20:02
    QML - Урок 016. База данных SQLite и работа с ней в QML Qt Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
    Сейчас обсуждают на форуме
    f
    firstlunoxod15 февраля 2025 г. 13:46
    Рисование на QGraphicsScene при зажатой кнопке мыши Подскажите, пожалуйста! Как данный класс можно дополнить, чтобы созданные объекты можно было перемещать мышкой по сцене?
    Дмитрий
    Дмитрий3 февраля 2025 г. 16:24
    Создание deb-пакета. Как создать ярлык на рабочем столе после установки собственного deb-пакета? Всем привет. Сделал свой deb-пакет с программой. Всё устанавливается и работает. Ставлю по пути /usr/bin/my_application. Как для пользователя при установке пакета сразу создать ярлык на раб…
    NW
    Nayo Wai30 января 2025 г. 19:22
    не запускается компьютер!!! Не запускается компьютер (точнее работает блок , но сам монитор вообще жесть)В общем я ничего с интернета не скачивала в последнее время. На компе никаких левых пр…
    n
    nkly3 января 2025 г. 12:52
    Нужно запретить перемещение только некоторых итемов, остальные перемещать можно. Вопрос решен. Узнать QModelIndex элемента на который мы перетаскиваем другой элемент, можно с помощью функции indexAt(event->position().toPoint()) представления QTreeViev вызываемой в переопр…
    M
    Marsel17 августа 2023 г. 0:26
    OAuth2.0 через VK, получение email Спасибо большое за помощь и простите за то что отнял время своей невнимательностью.

    Следите за нами в социальных сетях