Название: Использование приватных функций Qt Отправлено: ecspertiza от Декабрь 11, 2012, 16:39 Кто скажет как можно заюзать приватные функции Qt?
в частности интересует qt_mac_get_scalefactor() она находится в файле qt_cocoa_helpers_mac_p.h, но внутри есть инклуды типа <private/blablabla> и при компиляции компилятор ругается на private. Название: Re: Использование приватных функций Qt Отправлено: Alex Custov от Декабрь 11, 2012, 16:51 и при компиляции компилятор ругается на private. Как именно? Неужели так сложно сразу запостить ошибку? Название: Re: Использование приватных функций Qt Отправлено: Bepec от Декабрь 11, 2012, 16:53 Насколько я помню, у тебя это получится только с выдёргиванием всего включенного функционала.
И в ассистенте написано, что если функции объявлены приватными, они не рекомендуются для использования. Слишком масштабные бедствия можно вызвать :) Название: Re: Использование приватных функций Qt Отправлено: ecspertiza от Декабрь 11, 2012, 16:58 и при компиляции компилятор ругается на private. Как именно? Неужели так сложно сразу запостить ошибку? моя вина, подумал что это очевидно, ругается так Код: error: private/qt_mac_p.h: No such file or directory Насколько я помню, у тебя это получится только с выдёргиванием всего включенного функционала. И в ассистенте написано, что если функции объявлены приватными, они не рекомендуются для использования. Слишком масштабные бедствия можно вызвать :) понимаю что это плохо, но мне либо тот же функционал переписать либо просто подключить готовый :) тем более нужна одна ф-ция Название: Re: Использование приватных функций Qt Отправлено: Alex Custov от Декабрь 11, 2012, 17:03 Код: error: private/qt_mac_p.h: No such file or directory Скорее всего не прописаны пути для поиска инклудов. Покажи строку компиляции конкретного файла. Название: Re: Использование приватных функций Qt Отправлено: ecspertiza от Декабрь 11, 2012, 17:16 Код: g++-4.0 -c -pipe -O2 -arch i386 -Wall -W -isysroot /Developer/SDKs/MacOSX10.6.sdk -DQT_NO_DEBUG -DQT_DECLARATIVE_LIB -DQT_WEBKIT_LIB -DQT_SQL_LIB -DQT_XML_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/local/Trolltech/Qt-4.8.4/mkspecs/macx-g++40 -I. -I/usr/local/Trolltech/Qt-4.8.4/lib/QtCore.framework/Headers -I/usr/local/Trolltech/Qt-4.8.4/include/QtCore -I/usr/local/Trolltech/Qt-4.8.4/lib/QtNetwork.framework/Headers -I/usr/local/Trolltech/Qt-4.8.4/include/QtNetwork -I/usr/local/Trolltech/Qt-4.8.4/lib/QtGui.framework/Headers -I/usr/local/Trolltech/Qt-4.8.4/include/QtGui -I/usr/local/Trolltech/Qt-4.8.4/lib/QtXml.framework/Headers -I/usr/local/Trolltech/Qt-4.8.4/include/QtXml -I/usr/local/Trolltech/Qt-4.8.4/lib/QtSql.framework/Headers -I/usr/local/Trolltech/Qt-4.8.4/include/QtSql -I/usr/local/Trolltech/Qt-4.8.4/lib/QtWebKit.framework/Headers -I/usr/local/Trolltech/Qt-4.8.4/include/QtWebKit -I/usr/local/Trolltech/Qt-4.8.4/lib/QtDeclarative.framework/Headers -I/usr/local/Trolltech/Qt-4.8.4/include/QtDeclarative -I/usr/local/Trolltech/Qt-4.8.4/include -I/usr/local/Trolltech/Qt-4.8.4//src/3rdparty/zlib -I/usr/local/Trolltech/Qt-4.8.4//src/gui/text -I/Users/macmini/Downloads/qt-everywhere-opensource-src-4.8.4/include/QtGui/private -I../../quazip-0.5/quazip -Itmp/moc_dir -Itmp/ui/include -F/usr/local/Trolltech/Qt-4.8.4//lib -o tmp/obj/surfacewindow.o src/surfacewindow.cpp Название: Re: Использование приватных функций Qt Отправлено: ecspertiza от Декабрь 11, 2012, 17:48 можно закрывать тему :) выдернул эту ф-цию целиком, а она всеравно не верно работает.
Название: Re: Использование приватных функций Qt Отправлено: kambala от Декабрь 11, 2012, 18:18 функция состоит аж из одной строки :) ты же под карбон собираешь? может дело в том, что она Deprecated в 10.7?
p.s. а нельзя её вызвать как-нибудь по-хитрому, аналогично функции установки меню для иконки приложения? Код
Название: Re: Использование приватных функций Qt Отправлено: V1KT0P от Декабрь 11, 2012, 21:34 моя вина, подумал что это очевидно, ругается так Дык все что оканчивается на "*_p" является приватным и поэтому не поставляются с бинарными сборками. Скачай полные исходники и они там будут.Код: error: private/qt_mac_p.h: No such file or directory Название: Re: Использование приватных функций Qt Отправлено: ecspertiza от Декабрь 12, 2012, 12:47 p.s. а нельзя её вызвать как-нибудь по-хитрому, аналогично функции установки меню для иконки приложения? тоже пробовал так, но тогда не линкуется софт, просит описание ф-ции. моя вина, подумал что это очевидно, ругается так Дык все что оканчивается на "*_p" является приватным и поэтому не поставляются с бинарными сборками. Скачай полные исходники и они там будут.Код: error: private/qt_mac_p.h: No such file or directory у меня полные исходники есть, но я думаю что проблема именно с private в начале пути, ибо я такого пути не нашел даже :) Так или иначе проблему решил. Функция которую использует Qt работает либо не корректно, либо я не совсем понимаю ее назначения, она всегда возвращает 1, даже на retina дисплеях. Собственно говоря, я просто впилил *.mm файл в проект и немного переписал ф-цию Код: CGFloat qt_mac_get_scalefactor() для обычных дисплеев я получаю 1 ,а для ретина 2. Может это комуто поможет :) А и да, нужно добавить путь к OSX 10.7 SDK иначе не соберется проект. Название: Re: Использование приватных функций Qt Отправлено: kambala от Декабрь 12, 2012, 13:36 ты ведь таким образом отсекаешь всех «дольвиных» пользователей. может имеет смысл написать так?
Код
Название: Re: Использование приватных функций Qt Отправлено: ecspertiza от Декабрь 12, 2012, 13:40 хм, спасибо за совет, в мак апи еще совсем не силен :)
|