Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Qt 5.2.0: проблема манипуляции координатами текстов в QGraphicsScene.
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Система рисования. Печать
EnclaveGuard
Здравствуйте, уважаемые форумчане.
Желаю размещать в QGraphicsScene (Qt 5.2) размещать текстовые "заметки" и манипулировать их координатами.
В Qt 4.7 прекрасно работал исходник, приведённый ниже.

QGraphicsTextItem * textItem;
textItem = scene->addText("Text");
textItem->setPos(10,20); //Работало в Qt 4.7, не работает в Qt 5.2


В Qt 5.2 на третью строку ругается так:
~mainwindow.cpp:111: ошибка: invalid use of incomplete type 'class QGraphicsTextItem'
text->setPos(10,20);
^
Жаль, что из определения класса вообще пропала функция setPos().

Вопрос1: как можно решить проблему с добавлением QGraphicsTextItem-ов на сцену?
Вопрос2: есть решения нет, есть ли альтернативы (хотелось бы ссылки на готовые примеры)?
RazrFalcon
В профайле должен быть добавлен новый модуль:
QT += core gui widgets
EnclaveGuard
Цитата(RazrFalcon @ 3.5.2014, 6:29) *
В профайле должен быть добавлен новый модуль:
QT += core gui widgets


Благодарю Вас за совет, но тот, увы, не помог.
На всякий случай приведу содержимое *.pro файла.

Раскрывающийся текст
QT += core gui widgets
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = 008
TEMPLATE = app


SOURCES += main.cpp\
mainwindow.cpp

HEADERS += mainwindow.h

FORMS += mainwindow.ui

QMAKE_CXXFLAGS += -std=c++11


По прежнему имею ругань Qt Creator-а в следующем коде:
    QGraphicsTextItem* text;
    text = scene->addText("text", QFont("Arial", 24 ));
    text->setPos(10,20);//ошибка: invalid use of incomplete type 'class QGraphicsTextItem'
                         //text->setPos(10,20);
                         //    ^
    QGraphicsTextItem tempTextItem;//ошибка: aggregate 'QGraphicsTextItem tempTextItem' has incomplete type and cannot be defined
                                     //     QGraphicsTextItem tempTextItem;
                                     //                       ^


Пожалуйста, подскажите как это безобразие можно парировать.
dmtalm
проверь инклюды
в Qt 5 часто приходится добавлять например:
#include <QtGui>
#include <QtWidgets>
#include <QDebug>
#include <QGraphicsItem>
#include <QTextEdit>
#include <QGraphicsScene>

раньше хватало
#include <QtGui>
#include <QtCore>
EnclaveGuard
Цитата(dmtalm @ 3.5.2014, 21:38) *
проверь инклюды
в Qt 5 часто приходится добавлять например:
#include <QtGui>
#include <QtWidgets>
#include <QDebug>
#include <QGraphicsItem>
#include <QTextEdit>
#include <QGraphicsScene>

раньше хватало
#include <QtGui>
#include <QtCore>


Благодарю, это помогло решить проблему!
P. S. Руки бы тем ребяткам из Digia за произвол и беспредел поотрубать.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.