Будет ли у QT будущее в качестве инструментария GUI для MacOSX?

Сегодня я попытался реализовать поддержку нарисованных владельцем пунктов меню в Какао и MacOSX 10.5

И то, что я нашел, было довольно страшным, когда я подумал о QT, который я намеревался использовать для некоторых других проектов.

Если я правильно понял, у QT на MacOSX нет будущего, потому что весь Менеджер внешнего вида с исключением нескольких тривиальных функций полностью устарел в 10.5 (я даже больше не могу найти общедоступный URL) и даже «Разработчик» "список цветов и цвет" константы " в NSColor помечены как нестабильные и не используют.

С этой политикой у Toolkit, подобного QT, не было бы никакой возможности, кроме как отказаться от поддержки MacOSX, что имеет смысл для Apple более чем одним способом (помните, что Nokia является конкурентом). И Apple не заботился об отбрасывании Carbon и Java тоже.

Так что я что-то пропустил. Есть ли какой-нибудь менеджер внешнего вида Cocoa или какой-либо метод, который команда QT могла бы использовать разумный запасной вариант? Я боюсь, что в 10.7 или 10.8 внешний вид может быть совсем другим.

И, пожалуйста, всех людей, которые хотят закрыть этот вопрос как субъективный , пожалуйста, учтите, что я прошу техническую работу вокруг решения. к этой проблеме. Это не обсуждение хорошего или плохого, но есть ли способ обойти это ограничение. Это ссылка, сообщающая, что даже системные цвета больше не поддерживаются Доступ к системным цветам . И правильно, что изменение темы на графит не приводит к уведомлению об изменении списка цветов.

8
задан Lothar 1 October 2017 в 22:40
поделиться

2 ответа

Я отказался от попыток сделать QT родным. Это никогда не сработает, потому что существует слишком много тонких форм поведения, которые ни один кроссплатформенный инструментарий не может имитировать достаточно хорошо, чтобы обмануть пользователей. Если целью является собственное приложение, будет намного проще просто потратить немного больше времени на создание собственных интерфейсов для платформ, которые вы хотите поддерживать.

То, что удерживало меня от сброса QT, было незнание Xcode и Objective-C. Вы, вероятно, уже знаете это, но вы можете переименовать любой файл Objective-C (.m) в Xcode для компиляции как Objective-C ++ (.mm). Это позволяет вам связать весь код C ++, который вам нужен, прямо там, где он вам нужен в вашем проекте.

3
ответ дан 6 December 2019 в 00:53
поделиться

Firefox находится в той же лодке, поскольку они в основном основаны на какао. Их реализацию движка тем для OS X можно увидеть здесь.

  1. http://mxr.mozilla.org/mozilla2.0/source/widget/src/cocoa/nsNativeThemeCocoa.mm
  2. http://mxr.mozilla.org/mozilla2.0/source/widget/src /cocoa/nsNativeThemeCocoa.h
  3. http://mxr.mozilla.org/mozilla2.0/source/gfx/cairo/cairo/src/cairo-quartz-surface.c

Они полагаются на Каир (a платформенно-нейтральный API рисования), сидя над Quartz, чтобы выполнить рендеринг.

0
ответ дан 6 December 2019 в 00:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: