Комментарии 25
Офигенная статья. А что касается дока, то все думаю доделать кроссплатформенный класс для работы с ним ибо сейчас док есть и в Макоси и в Убунте и в выходящих кедах и даже в винде по сути дела новый таскбар являет собой док.
+4
Спасибо за высокую оценку!
С доком дела обстоят достаточно сложно, в разных системах он имеет разную функциональность, собственно, по этой причине в Qt нет встроенных функций для работы с ним.
Кроме того, в винде версии ниже 7 таскбар несравним с доком. И Unity есть пока только в убунту.
Так что, как ни крути, придётся делать разные классы для каждой системы. Унифицировать тут вряд ли можно.
С доком дела обстоят достаточно сложно, в разных системах он имеет разную функциональность, собственно, по этой причине в Qt нет встроенных функций для работы с ним.
Кроме того, в винде версии ниже 7 таскбар несравним с доком. И Unity есть пока только в убунту.
Так что, как ни крути, придётся делать разные классы для каждой системы. Унифицировать тут вряд ли можно.
0
Все доки имеют менюшку, во всех доках в принципе можно встраивать бейджы, везде можно иконку дока менять, обрабатывать нажатие на неё, делать подпрыгивание или другую сигнализацию и во всех доках можно делать индикатор прогресса. Где-то нативными методами где-то тупо рисуя его.
То бишь общий интерфейс как ни странно есть.
То бишь общий интерфейс как ни странно есть.
+1
Ну, разве что действительно вручную рисовать.
В таскбаре вин7 есть, к примеру, фича, которой я больше нигде не видел — это выдача попапа с заданными виджетами внутри при наведении на значок мышки.
Кроме того, остаются ещё системы без поддержки «доковости» в принципе.
В таскбаре вин7 есть, к примеру, фича, которой я больше нигде не видел — это выдача попапа с заданными виджетами внутри при наведении на значок мышки.
Кроме того, остаются ещё системы без поддержки «доковости» в принципе.
+1
Насёт Unity — не совсем точно. Для KDE SC 4, например, есть icon-tasks, который реализует Unity API — такой себе Unity без оного. И может быть где угодно. Скорее проблема в том, что нет гарантии, что у пользователя это есть. Особенно в мире Linux. Но тут можно пойти простым путём — нет, ну и ладно.
+1
Несмотря на то, что сам являюсь сторонником переносимого кода, всё-так считаю что Qt как ни прикручивай к MacOS X, всё равно:
1) интерфейс смотрится чужеродно, некрасиво
2) в аппстор таким программам путь заказан
3) маководы в большинстве своем перфекционисты и педанты, поэтому из-за п.1 такой софт не будет у них в фаворе. Это значит следующее: допустим есть офигенная прога, которая суперски делает свое дело, но использует Qt GUI. Если нет ничего нативного, маководы скачают ее и будут пользоваться. Как только выйдет кривая поделка, полная багов, но с красивым нативным «лицом», — маководы выбросят QT-хорошую-прогу и поставят нативный костыль. У меня была возможность наблюдать это не раз.
На основании вышесказанного, если конечная цель проекта — успешное приложение для MacOS X, — лучше разобраться с Objective-C и Cocoa, а Qt оставить в покое.
1) интерфейс смотрится чужеродно, некрасиво
2) в аппстор таким программам путь заказан
3) маководы в большинстве своем перфекционисты и педанты, поэтому из-за п.1 такой софт не будет у них в фаворе. Это значит следующее: допустим есть офигенная прога, которая суперски делает свое дело, но использует Qt GUI. Если нет ничего нативного, маководы скачают ее и будут пользоваться. Как только выйдет кривая поделка, полная багов, но с красивым нативным «лицом», — маководы выбросят QT-хорошую-прогу и поставят нативный костыль. У меня была возможность наблюдать это не раз.
На основании вышесказанного, если конечная цель проекта — успешное приложение для MacOS X, — лучше разобраться с Objective-C и Cocoa, а Qt оставить в покое.
0
В начале поста я оговорился, что рассчитываю в основном на тех, кому надо достаточно быстро свою программу впилить в макось. Так что конечная цель — более-менее успешное портирование. Далее по пунктам.
1. Интерфейс очень сильно приближен к родному, но его всё равно можно кастомизировать, используя Style Sheets. Единственное, чего не хватает — это родного скролла с резиновыми краями (и исчезающего скроллбара).
2. Не согласен, на хабре даже проскакивали ссылки на такие программы, да и я такие видел не раз.
3. Я и сам в некотором роде маковод. Но у меня стоят программы, написанные на Java и GTK+, которые смотрятся достаточно не-нативно. И ничего. И многие их ставят.
Вообще, если создатели Qt допилят нативный скроллинг, то пользователь может даже не узнать о том, что твоя программа написана не на Cocoa. Но с одним я согласен: если хочешь делать изначально под мак и только под него, то делай это на Cocoa (иногда с добавлением Carbon'а).
1. Интерфейс очень сильно приближен к родному, но его всё равно можно кастомизировать, используя Style Sheets. Единственное, чего не хватает — это родного скролла с резиновыми краями (и исчезающего скроллбара).
2. Не согласен, на хабре даже проскакивали ссылки на такие программы, да и я такие видел не раз.
3. Я и сам в некотором роде маковод. Но у меня стоят программы, написанные на Java и GTK+, которые смотрятся достаточно не-нативно. И ничего. И многие их ставят.
Вообще, если создатели Qt допилят нативный скроллинг, то пользователь может даже не узнать о том, что твоя программа написана не на Cocoa. Но с одним я согласен: если хочешь делать изначально под мак и только под него, то делай это на Cocoa (иногда с добавлением Carbon'а).
0
1. ни разу еще не видел хотя бы приблизительно похожего.
2. можно ссылочку хоть на одну? любопытно.
3. я написал «в большинстве своем», не имел в виду вас. я, к примеру, не ахти какой педант, но стараюсь не ставить на мой мак чужеродного софта.
В целом я с вами согласен — для портинга нормально. Но если это не портинг, а лень учиться чему-то новому, то Qt не прокатит.
2. можно ссылочку хоть на одну? любопытно.
3. я написал «в большинстве своем», не имел в виду вас. я, к примеру, не ахти какой педант, но стараюсь не ставить на мой мак чужеродного софта.
В целом я с вами согласен — для портинга нормально. Но если это не портинг, а лень учиться чему-то новому, то Qt не прокатит.
0
Уже не надо, сам нашел: itunes.apple.com/us/app/togmeg/id445287955
И все равно выглядит чужеродно. Мне кажется объём работы по мимикрированию GUI в этом случае сопоставим с объёмом работы по переносу GUI на Сocoa, это конечно при условии что логику программы оставить написанной на C++.
И все равно выглядит чужеродно. Мне кажется объём работы по мимикрированию GUI в этом случае сопоставим с объёмом работы по переносу GUI на Сocoa, это конечно при условии что логику программы оставить написанной на C++.
+2
Лично мне не лень учиться новому. Обычно начальству «лень» ждать конца обучения, да ещё и оплачивать его. =)
По пункту 2 — есть ещё скробблер Last.FM, в аппсторе его правда нет, но популярностью пользуется.
По пункту 2 — есть ещё скробблер Last.FM, в аппсторе его правда нет, но популярностью пользуется.
0
Если начальство адекватное, можете попробовать объяснить ему, что
1. Конечный результат будет заведомо чуть хуже
2. Время, потраченное на шаманство со стилями и прочие танцы с бубном, примерно равно портингу GUI на Cocoa. А для действительно хорошего программиста оно будет еще меньше.
1. Конечный результат будет заведомо чуть хуже
2. Время, потраченное на шаманство со стилями и прочие танцы с бубном, примерно равно портингу GUI на Cocoa. А для действительно хорошего программиста оно будет еще меньше.
0
1. Это да
2. Для сложного проекта (где GUI достаточно много, причём кастомного) это не так.
2. Для сложного проекта (где GUI достаточно много, причём кастомного) это не так.
0
Для кастомного гуя вообще лучше юзать Qt Quick. Впрочем, на QtQuick вполне можно будет юзать и кокоа виджеты.
0
Ну а если же конечная цель — работа на многих платформах, включая MacOS X (иногда портинги делают «для галочки», чтоб было), тогда конечно, Qt — самое оно.
0
Я вот на маке использую PhpStorm, хотя он даже не на Qt, а на (обожемой) Java. Ибо в остальном это очень удобная IDE, несмотря на её «некрасивость». Так что, ИМХО, не совсем родную программу на Qt для Mac OS X люди легко потерпят, если сама программа при этом будет действительно хороша и не будет нативных аналогов.
А в целом я с вами согласен
А в целом я с вами согласен
0
Спасибо за статью. Было интересно почитать. Даже не смотря на то, что в основном сижу под седьмым виндовозом.
+1
Мне, как iOS/Mac разработчику с большим стажем программировани на Qt за спиной, статья ничего нового не принесла. Но в общем очень полезная, особенно учитывая, что Mac набирает популярности в мире.
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Интеграция приложений Qt в среду Mac OS X (с использованием Cocoa и Objective-C++)