Название: Как переопределить основное меню приложения [Решено] Отправлено: wolfut от Август 03, 2011, 14:33 Доброго времени суток!
В Mac OS X у каждого приложение есть меню, оно в верхней части экрана. У меня есть два вопроса: 1.В меню есть четыре стандартных пункта, один из них "Службы" как убрать этот пункт? 2.Меню носит название приложения, как переименовать это название (для локализации)?. Пробую qApp->setAplicationName(...) названия в меню не меняются. Название: Re: Как переопределить основное меню приложения Отправлено: kambala от Август 03, 2011, 14:42 2. название берется из ключа CFBundleName в Info.plist, так что может быть только путем создания разных сборок.
можно еще попробовать поиграться с QMenuBar - попробовать менять в нем что-то после загрузки интерфейса или вообще унаследоваться от него. Название: Re: Как переопределить основное меню приложения Отправлено: kambala от Август 04, 2011, 10:09 1. Qt использует везде стандартное "первое" меню - оно находится в QTDIR/lib/QtGui.framework/Versions/4/Resources/qt_menu.nib. Можешь отредактировать прямо его, но тогда все создаваемые тобой приложения будут иметь отредактированное меню. Другой вариант - после скармливания своего приложения macdeployqt это меню попадает в APPBUNDLE/Contents/Frameworks/QtGui.framework/Resources/qt_menu.nib, вот тут-то его и отредактировать.
2. из документации Apple (http://developer.apple.com/library/ios/documentation/general/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html#//apple_ref/doc/uid/TP40009249-109585) я так понял, что локализовать название в меню (CFBundleName) можно лишь при использовании эппловской структуры папок для локализации, но Qt в пакет всегда помещает APPBUNDLE/Contents/Resources/empty.lproj и использует свои языковые ресурсы. Название: Re: Как переопределить основное меню приложения Отправлено: wolfut от Август 09, 2011, 15:21 меню перевел, добавил папку APPBUNDLE/Contents/Resources/ru.lproj и в неё файл InfoPlist.strings, а в этот файл строки:
CFBundleName = <app name> CFBundleDisplayName = <app name> Меню переводится при изменение язык ОС на русский. |