anonymous@RULINUX.NET~# | Last login: 2024-11-22 11:32:30 |
Регистрация Вход | Новости | Разметка | Пользователи | Галерея | Форум | Статьи | Неподтвержденное | Трекер | Правила форума | F.A.Q. | Ссылки | Поиск |
Форум - Development | [RSS] |
Понадобилось портировать на qt4 программу, на которую забил былой автор. Беда только в том, что плюсы(как и qt) я знаю очень поверхностно. Почитал ман по портированию все по нему сделал, т.е конвертировал формы и прогнал проект через qt3to4. Начал исправлять появившиеся ошибки в коде, и вот натыкаюсь на такую ошибку:
На qt3 это преобразование работало нормально, а как его можно сделать на qt4?Вот и сам код:
З.Ы. Вопрос наверняка глупый, прошу сильно не пинать - я только начинаю разбираться с плюсами и qt.
anonymous(*) (2009-09-20 17:17:00)
Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.2) Gecko/20090902 Gentoo Firefox/3.5.2
|
|
|
Скрыть
Re: Портирование на с qt3 на qt4. Шаг последний.Можно попдробнее код. А то толком нихрена не понятно. cfg как я понимаю обьект QSettings? Тогда вот из ассистента writeEntry не принимает QHostAddres в качестве аргумента. Только как ты собрался обьявить ip как QHostAddress я не понял. Tux-oid(*)(2009-09-20 21:23:53)
Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9.1.0) Gecko/20090623 SUSE/3.5.0-6.1 Firefox/3.5 |
Скрыть
Re: Портирование на с qt3 на qt4. Шаг последний.writeEntry я рассматривал как вариант, пока опустим его. Из QHostAddress Class Reference: Сам код: И сама ошибка(на последней строке): Т.е getIP(); возвращает ‘const QString’ вместо ‘const QString&’. Для меня не очевидно почему так происходит, так же не понятно как это исправить.anonymous(*)(2009-09-20 23:07:08)
Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.2) Gecko/20090902 Gentoo Firefox/3.5.2 |
Tux-oid(*)(2009-09-20 23:42:57)
Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9.1.0) Gecko/20090623 SUSE/3.5.0-6.1 Firefox/3.5 |
Скрыть
Re: Портирование на с qt3 на qt4. Шаг последний.по-хорошему следует IP-адрес везде объявить как QHostAdress, там где раньше он передавался в виде QString т.е. например поправить на bool setIP(const QHostAddress &ip) эта же строка c ашыпкой должна быть разбита на две: this->ip = ip; cfg.writeEntry("/Network/IP", ip.toString ()); в тех остальных местах проги, где твой новый IP-адрес должен быть инициализирован при помощи строкового значения, следует быть QHostAddress addr; QString somestrwithip; addr = QHostAddres(somestringwithip); если везде переделывать тебе покажется слишком затруднительным, короткий, но нехороший путь для именно этого места: this->ip = QHostAddress(ip); cfg.writeEntry("/Network/IP", ip); т.е. у тебя сейчас проблема в том, что this->ip имеет тип QHostAddress, а ты ему пытаешся присвоить обект другого типа, QString, что без явного приведения типов делать не надо. bugmaker(*)(2009-09-21 03:09:15)
Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9.0.14) Gecko/2009090216 Ubuntu/9.04 (jaunty) Firefox/3.0.14 |
Скрыть
Re: Портирование на с qt3 на qt4. Шаг последний.> QHostAddress &addr = settings->getIP();
QHostAddress &addr = QHostAddress (settings->getIP()); bugmaker(*)(2009-09-21 03:12:39)
Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9.0.14) Gecko/2009090216 Ubuntu/9.04 (jaunty) Firefox/3.0.14 |
Скрыть
Re: Портирование на с qt3 на qt4. Шаг последний.> QHostAddress &addr = QHostAddress (settings->getIP());
bugmaker(*)(2009-09-21 03:21:56)
Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9.0.14) Gecko/2009090216 Ubuntu/9.04 (jaunty) Firefox/3.0.14 |
Скрыть
Re: Портирование на с qt3 на qt4. Шаг последний.> cfg.writeEntry("/Network/IP", ip.toString ());
anonymous(*)(2009-09-21 16:49:47)
Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.2) Gecko/20090902 Gentoo Firefox/3.5.2 |
Скрыть
Re: Портирование на с qt3 на qt4. Шаг последний.Казалось бы тут можно грешить на qt или gcc. Но этой версией gcc у меня соьрана вся система + кеды и Ко скомпилились нормально. anonymous(*)(2009-09-21 18:13:10)
Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.2) Gecko/20090902 Gentoo Firefox/3.5.2 |
Скрыть
Re: Портирование на с qt3 на qt4. Шаг последний.ты правильно сделал? export CFLAGS=${CFLAGS}" -D_WIN32_X11_" ./configure make после этого в приведённой тобой строке gcc ... должно появится -D_WIN32_X11_ |
Скрыть
Re: Портирование на с qt3 на qt4. Шаг последний.> ты правильно сделал?
> после этого в приведённой тобой строке gcc ... должно появится -D_WIN32_X11_
anonymous(*)(2009-09-21 18:50:23)
Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.2) Gecko/20090902 Gentoo Firefox/3.5.2 |
anonymous(*)(2009-09-21 19:14:04)
Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.2) Gecko/20090902 Gentoo Firefox/3.5.2 |
Скрыть
Re: Портирование на с qt3 на qt4. Шаг последний.вобщем, ИМХО, я недоволен. Вот тебе прого: сохрани в zzz.lisp, сделай clisp zzz.lisp > zzz.h, добавь куда-нибудь в файл xxxprotocol.cpp строку #include "zzz.h", и смотри, какие макросы определены. Добавляй нужные в список test-presence. Логика объявления макросов в кутёвом qglobal.h. В итоге должен получить имя макроса, который приходит извне и на основе которого делаются такие выводы. Затем при помощи grep найди, где этот макрос обявлен. Походу у тебя autotools нездоровые ИМХО. bugmaker(*)(2009-09-21 19:54:18)
Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9.0.14) Gecko/2009090216 Ubuntu/9.04 (jaunty) Firefox/3.0.14 |
bugmaker(*)(2009-09-23 03:04:05)
Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9.0.14) Gecko/2009090216 Ubuntu/9.04 (jaunty) Firefox/3.0.14 |
Скрыть
Re: Портирование на с qt3 на qt4. Шаг последний.Оужас, заставил беднягу clisp собирать. Нельзя было написать просто ? Или даже руками скопипастить 12 строчек? Выпендрист. |
|
|
|
Этот тред читают 1 пользователь: |
Анонимных: 1 Зарегистрированных: 0 |
Re: Портирование на с qt3 на qt4. Шаг последний.
Вот кусочки кода на пастебине http://pastebin.ca/1572870
Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.2) Gecko/20090902 Gentoo Firefox/3.5.2