crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Ошибка вида "no matching ... ClassName*&"
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
kwisp Дата 26.1.2010, 15:15
 
Цитата(Litkevich Yuriy @ 26.1.2010, 14:01) *
а const'ом он как отличит?

не вдаваясь в подробности, конструктры QString & QByteArray не заданы explicit. можно предположить что первый парметр компилятор желает преобразовать и не знает к чему к const QString& (хотя по-идее это случай неяного преобразования и должен работать) или к const QByteArray&. Если укажешь const по-идее преобразовывать нельзя и он оставит параметр в неизменном виде. соответственно подойдёт конструктор QSvgRenderer(const QString &filename, QObject *parent=0)

попробуй, может и получится.

П.С.
по крайней мере явно узнаешь проблема в первом или во втором параметре.
QGraphicsScene унаследован от QObject public`ом c макросом Q_OBJECT не видно на первый взгляд причин для проблем с преобразованием.
Litkevich Yuriy Дата 26.1.2010, 14:01
  сейчас уже не поробую переделал иначе. Ошибка эта вылезла после добавления сцены в качестве аргумента, сначала было просто:
rendererOn = new QSvgRenderer(filename); //объявлен: QSvgRenderer *rendererOn
и всё компилелось

Цитата(kwisp @ 25.1.2010, 21:22) *
не может без const различить эти два констуктора ?
QSvgRenderer(const QString &filename, QObject *parent=0);
QSvgRenderer(const QByteArray &contents, QObject *parent=0);
а const'ом он как отличит?
kwisp Дата 26.1.2010, 13:11
  значит остаётся только это:
Цитата(kwisp @ 25.1.2010, 18:22) *
еще может не может без const различить эти два констуктора ?
QSvgRenderer(const QString &filename, QObject *parent=0);
QSvgRenderer(const QByteArray &contents, QObject *parent=0);

попробуй
void SVGGraphics::setOnSVG(const QString & filename)
{
    QGraphicsScene *s = scene();
    rendererOn = new QSvgRenderer(filename, s); //объявлен: QSvgRenderer *rendererOn
}

так кстати и троли рекомендуют делать, да и имя файла ты в setOnSVG не меняешь так что const QString& в самый раз.
Litkevich Yuriy Дата 26.1.2010, 6:58
 
Цитата(kwisp @ 25.1.2010, 21:22) *
#include<QGraphicsScene>
присутствует?
да
kwisp Дата 25.1.2010, 18:22
  а
#include<QGraphicsScene>
присутствует?
еще может не может без const различить эти два констуктора ?
QSvgRenderer(const QString &filename, QObject *parent=0);
QSvgRenderer(const QByteArray &contents, QObject *parent=0);
Litkevich Yuriy Дата 16.1.2010, 17:20
  Есть такой код:
void SVGGraphics::setOnSVG(QString filename)
{
    QGraphicsScene *s = scene();
    rendererOn = new QSvgRenderer(filename, s); //объявлен: QSvgRenderer *rendererOn
}
на второй строчке получаю ошибку:
Цитата
error: no matching function for call to `QSvgRenderer::QSvgRenderer(QString&, QGraphicsScene*&)'
.../svg/qsvgrenderer.h:60: note: candidates are: QSvgRenderer::QSvgRenderer(const QSvgRenderer&)
.../src/svg/qsvgrenderer.h:69: note: QSvgRenderer::QSvgRenderer(const QByteArray&, QObject*)
.../src/svg/qsvgrenderer.h:68: note: QSvgRenderer::QSvgRenderer(const QString&, QObject*)
.../src/svg/qsvgrenderer.h:67: note: QSvgRenderer::QSvgRenderer(QObject*)
немогу понять почему компиллер пишет, то что я выделил жирным. Ведь я передаю указатель. А QGraphicsScene является наследником QObject.
Т.е. поидее должен вызываться конструктор:
QSvgRenderer::QSvgRenderer(const QString&, QObject*)

В чём проблема?
Просмотр темы полностью (откроется в новом окне)
RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 4.7.2025, 23:24