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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как переопределить основное меню приложения [Решено]  (Прочитано 3253 раз)
wolfut
Гость
« : Август 03, 2011, 14:33 »

Доброго времени суток!

В Mac OS X у каждого приложение есть меню, оно в верхней части экрана. У меня есть два вопроса:
1.В меню есть четыре стандартных пункта, один из них "Службы" как убрать этот пункт?
2.Меню носит название приложения, как переименовать это название (для локализации)?. Пробую qApp->setAplicationName(...) названия в меню не меняются.
« Последнее редактирование: Август 09, 2011, 15:35 от wolfut » Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #1 : Август 03, 2011, 14:42 »

2. название берется из ключа CFBundleName в Info.plist, так что может быть только путем создания разных сборок.

можно еще попробовать поиграться с QMenuBar - попробовать менять в нем что-то после загрузки интерфейса или вообще унаследоваться от него.
Записан

Изучением 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
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #2 : Август 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 я так понял, что локализовать название в меню (CFBundleName) можно лишь при использовании эппловской структуры папок для локализации, но Qt в пакет всегда помещает APPBUNDLE/Contents/Resources/empty.lproj и использует свои языковые ресурсы.
Записан

Изучением 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
wolfut
Гость
« Ответ #3 : Август 09, 2011, 15:21 »

меню перевел, добавил папку  APPBUNDLE/Contents/Resources/ru.lproj и в неё файл InfoPlist.strings, а в этот файл строки:
CFBundleName = <app name>
CFBundleDisplayName = <app name>

Меню переводится при изменение язык ОС на русский.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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