Вызов сигнала в mousePressEvent
родитель:
// абстрактный класс class NodeEdgeParent : public QGraphicsItem { public: NodeEdgeParent(GraphWidget *graphWidget); enum { Type = UserType + 1 }; virtual void setTextContent(QString text) = 0; virtual QString textContent() const = 0; void mousePressEvent(QGraphicsSceneMouseEvent *event) override; GraphWidget *graph; };
2 дочерних класса:
class Node : public NodeEdgeParent class Edge : public NodeEdgeParent
Почему я не могу обратиться в
NodeEdgeParent::mousePressEvent
к полю
graph
?
nodeedgeparent.cpp
#include "nodeedgeparent.h" #include <QDebug> class GraphWidget; NodeEdgeParent::NodeEdgeParent(GraphWidget *graphWidget): graph(graphWidget) { } void NodeEdgeParent::mousePressEvent(QGraphicsSceneMouseEvent *event) { if (event->button() == Qt::RightButton) { qDebug() << "RightButton"; scene()->clearSelection(); setSelected(true); // emit graph->editItem(); } QGraphicsItem::mousePressEvent(event); }
Весь проект лежит на
github
. Задача состоит что бы при нажатии ПКМ на вершине или на дуге вызывался сигнал
graph->editItem().
2
94
Do you like it? Share on social networks!
- Last comments
- AKApril 1, 2025, 11:41 a.m.Добрый день. В данный момент работаю над проектом, где необходимо выводить звук из программы в определенное аудиоустройство (колонки, наушники, виртуальный кабель и т.д). Пишу на Qt5.12.12 поско…
- VPMarch 9, 2025, 4:14 p.m.Здравствуйте! Я устанавливал Qt6 из исходников а также Qt Creator по отдельности. Все компоненты, связанные с разработкой для Android, установлены. Кроме одного... Когда пытаюсь скомпилиров…
- Now discuss on the forum
- DTApril 14, 2025, 3:38 p.m.Всем привет! На Qt 6.8 MinGW пытаюсь сделать управление подключением WiFi из программы. Пока делаю поддержку Windows, но так же хочу в дальнейшем внедрить и поддержку Linux/MacOS. Для…
- fFeb. 15, 2025, 1:46 p.m.Подскажите, пожалуйста! Как данный класс можно дополнить, чтобы созданные объекты можно было перемещать мышкой по сцене?
- Не запускается компьютер (точнее работает блок , но сам монитор вообще жесть)В общем я ничего с интернета не скачивала в последнее время. На компе никаких левых пр…
- Вопрос решен. Узнать QModelIndex элемента на который мы перетаскиваем другой элемент, можно с помощью функции indexAt(event->position().toPoint()) представления QTreeViev вызываемой в переопр…
Мне не нравится то, что у вас имя базового класса и имя поля одинаковые.
Наверняка конфликт имён.
переименовал. Но все равно, Выводит вот такие ошибки:
хм. так у вас нет заголовочного файла для GraphWidget. я что-то не обратил внимания на это, пока описание ошибки не кинули.
Я вообще что-то неправильно понял код поначалу
да, помогло, я думал раз я написал: class GraphWidget; так хидер файл можно не добавлять