Russian Qt Forum
Ноябрь 26, 2024, 06:46 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: QNetworkAccessManager ошибки  (Прочитано 8924 раз)
build1423
Гость
« : Апрель 27, 2013, 14:21 »

Здраствуйте. Пишу я небольшую функцию и нужно использовать QNetworkAccessManager. При его обьявлении параметром нужно вписать QObject parent. Если я передаю QCoreApplication как параметр моей функции
Код
C++ (Qt)
void myfunc(QCoreApplication b)
{
   QNetworkAccessManager *myManager = new QNetworkAccessManager(&b);
}
 
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    myfunc(a);
    return 0;
}
То вылетает, что QCoreApplication приватная. Если использовать ключевое слово this
Код
C++ (Qt)
void myfunc()
{
   QNetworkAccessManager *myManager = new QNetworkAccessManager(this);
}
 
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    myfunc();
    return 0;
}
То вылетает error: invalid use of 'this' in non-member function.
Если в название добавить класс, с которым будем работать
Код
C++ (Qt)
void QCoreApplication::myfunc()
{
   QNetworkAccessManager *myManager = new QNetworkAccessManager(this);
}
 
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    return 0;
}
то вылетает error: no 'void QCoreApplication::myfunc()' member function declared in class 'QCoreApplication' и вызвать мою функцию в main нельзя. Так как правильно использовать QNetworkAccessManager?
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #1 : Апрель 27, 2013, 15:04 »

Изучи-ка сначала C++ и твой вопрос сам по себе решится.
Записан

ArchLinux x86_64 / Win10 64 bit
build1423
Гость
« Ответ #2 : Апрель 27, 2013, 15:29 »

Изучи-ка сначала C++ и твой вопрос сам по себе решится.
Ну правильно. Вместо того, что бы сказать, которую строчку нужно исправить, и как, потратив на это 5 секунд, Вы мне предлагаете изучить полностью С++. Прочтение  одной книги будет маловато, как по мне. Нужно прочитать миннимум две, по пару раз. Времени на это потратится, предположим, 3 месяца. Задачу, которую мне нужно сделать, сдавать через 2 недели. Так не думаете ли Вы, что совет, даный Вами же не рационален.
Записан
alex312
Хакер
*****
Offline Offline

Сообщений: 606



Просмотр профиля
« Ответ #3 : Апрель 27, 2013, 15:42 »

что совет, даный Вами же не рационален.
Зато бесплатный  Смеющийся
Записан
build1423
Гость
« Ответ #4 : Апрель 27, 2013, 15:52 »

Издеваться над новичком в теме для новичков это конечно дело весёлое и благородное(а главное - бесплатное!), но я всё-же надеюсь на помощь.
Записан
alex312
Хакер
*****
Offline Offline

Сообщений: 606



Просмотр профиля
« Ответ #5 : Апрель 27, 2013, 16:12 »

но я всё-же надеюсь на помощь.
Найтиде кого-то, кто сделает за вас эту лабораторку. Это серьезно, с вашим знанием С++ - это единственный разумный выход для вас.
Записан
build1423
Гость
« Ответ #6 : Апрель 27, 2013, 17:24 »

Вы издеваетесь? Я не поучительств ищу на форуме, а ответ на вопрос. С++ я знаю в достаточной мере для того, что бы написать то, что мне нужно. Но вот немогу я правильно инициализировать обьект класса. В примерах, которых куча, взять хотябы http://qt-project.org/doc/qt-4.8/qnetworkaccessmanager.html написано QNetworkAccessManager *manager = new QNetworkAccessManager(this); Они тоже не знают С++ и им его надо учить? Если не можете помочь, так уж молчите, прошу.
Записан
alex312
Хакер
*****
Offline Offline

Сообщений: 606



Просмотр профиля
« Ответ #7 : Апрель 27, 2013, 17:32 »

Вы издеваетесь? Я не поучительств ищу на форуме, а ответ на вопрос. С++ я знаю в достаточной мере для того, что бы написать то, что мне нужно.
А может это вы издеваетесь? И если вы "знаете" С++, то что вам не понятно в строке
Код
C++ (Qt)
QNetworkAccessManager ( QObject * parent = 0 );
  Непонимающий
Записан
build1423
Гость
« Ответ #8 : Апрель 27, 2013, 17:42 »

Что именно должно быть параметром? Только не надо ответов вроде указатель на обьект типа QObject.
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #9 : Апрель 27, 2013, 17:45 »

С++ я знаю в достаточной мере для того, что бы написать то, что мне нужно.
код в первом посте говорит совсем об обратном

чтобы исправить ошибку в первом варианте, параметр функции должен быть не QCoreApplication b, а const QCoreApplication &b
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
build1423
Гость
« Ответ #10 : Апрель 27, 2013, 18:01 »

параметр функции должен быть не QCoreApplication b, а const QCoreApplication &b
error: invalid conversion from 'const QObject*' to 'QObject*' [-fpermissive]
Записан
alex312
Хакер
*****
Offline Offline

Сообщений: 606



Просмотр профиля
« Ответ #11 : Апрель 27, 2013, 18:08 »

error: invalid conversion from 'const QObject*' to 'QObject*' [-fpermissive]
Код
C++ (Qt)
QNetworkAccessManager *myManager = new QNetworkAccessManager(const_cast<QCoreApplication*>(&b));
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #12 : Апрель 27, 2013, 18:20 »

ну тогда параметр без конст просто
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
alex312
Хакер
*****
Offline Offline

Сообщений: 606



Просмотр профиля
« Ответ #13 : Апрель 27, 2013, 18:23 »

ну тогда параметр без конст просто
gcc такого не пропустит
Записан
Bepec
Гость
« Ответ #14 : Апрель 27, 2013, 18:31 »

Та вы заканали, знатоки. Тупо не передавай ничего Улыбающийся

т.е.   QNetworkAccessManager *myManager = new QNetworkAccessManager;

Финита ля комедиа?
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.26 секунд. Запросов: 23.