Здравствуйте, Sheridan, Вы писали:
C>> Под *nix будет точно, видимо с backend'ом на QT (я этим сейчас занимаюсь). C>> Под Mac лучше кроссплатформенный код не писать, а использовать местные инструменты — очень они уж специфические. S>Просто сделай дополнительное дерево классов контролов для Qt и живи спокойно.
По удобству разработки НИЧЕГО пока не сравнивается с htmlayout'ом.
a> M>Что значит сильные ограничения? В чем они проявляются? Что значит «задрочить пользователя изменениями». Почему сабклассинг этого не позволяет? a> M>Что значит «тяжелые расширители»? 0_о
a> Основная возможность этих контролов — это игнорировать цвета и прочие параметры, которые пользователь выбрал в системе, ничего существенного они не привносят.
Еще раз. Что такое «тяжелые расширители»?
a> M>То есть тем же wxWidgets надо реализовывать, по сути, два движка? Один — эмулятор, один — поддержка родных контролов?
a> wxWidgets — это не Qt, самописные контролы — это всего лишь дополнение к нативным, которые пишутся в случае: a> 1. Ни одна платформа не поддерживает контролы, они есть лишь в третьих библиотеках a> 2. Одна из платформ не поддерживает контрол, он пишется на основании поведения на других платформах. a> Контролы, которые приходится эмулировать, пишутся максимально приближенно к родным и используют наиболее близкий класс. Например кнопка с рисунком — это наследник от родной кропки,
Я про это изначально и спрашивал. Что, если родная для системы кнопка не поддерживает рисунок? (Кнопка в винде рисунки не поддеривает, насколько я понмю)
a> а не от просто прямоугольник на родной форме операционной системы как в Qt.
Ты вообще Qt видел? Или эта, вообще разбираешься в том, что такое сабклассинг там. Не? Кнопка с рисунком — точно такой же сабкласс кнопки, а не «просто прямоугольник на форме».
a> S>Да и не смотря на такую "убогость" Qt становиться де-факто стандартом кроссплатформенного программирования и стал основой для KDE(де-факто стандартным WM для Linux)
a> Вот уже 10 лет становится, все никак не может стать. А стандартный DE под дистрибутивы это GNOME, а не KDE — его выбирали Fedora, Debian, OpenSUSE, Ubuntu и другие ведущие дистрибутивы Linux.
Несмотря на то, что эти вопросы задавал не я, все же отвечу. В OpenSUSE стандартный DM — KDE. И стандартный DE под дистрибутивы... А нет такого понятия, как стандартный DE под дистрибутивы.
Более того, Gnome посленее время развивается очень медленно.
a> GTK+ — родной под GNOME, Qt — родной под KDE, wxWidgets — родной под Windows, GNOME и Mac OS X. А под Windows Qt это всего лишь портированный KDE с взятыми из системы цветами,
Здравствуйте, Mamut, Вы писали: a>> GTK+ — родной под GNOME, Qt — родной под KDE, wxWidgets — родной под Windows, GNOME и Mac OS X. А под Windows Qt это всего лишь портированный KDE с взятыми из системы цветами, M>Пипец. Такого бреда я еще никогда не слышал.
Не, ну в каждой шутке есть все-таки доля шутки... или правды... в общем — не важно.
Gtk и qt правда ведь "родные" там, где большинство других аппликух использует соответственно gtk или qt. Gtk-приложение в kde-окружении (по крайней мере — в последнее время) будет выглядеть немного коряво. Хотя qt надо отдать должное — он под gtk маскируется довольно хорошо (ну разве кроме иконок).
Ну а у wxwidgets и вправду вроде бы три разных бэкенда под разные платформы, хотя въедливые коллеги могут подметить, что, помимо внешнего вида кнопочек, существуют такие важные вещи, как stock-иконки в gtk, расположение пунктов меню и т.п.
А фразу про kde в windows я тоже как-то не понял.
MC> a>> GTK+ — родной под GNOME, Qt — родной под KDE, wxWidgets — родной под Windows, GNOME и Mac OS X. А под Windows Qt это всего лишь портированный KDE с взятыми из системы цветами,
MC> M>Пипец. Такого бреда я еще никогда не слышал.
MC> Не, ну в каждой шутке есть все-таки доля шутки... или правды... в общем — не важно. MC> Gtk и qt правда ведь "родные" там, где большинство других аппликух использует соответственно gtk или qt. Gtk-приложение в kde-окружении (по крайней мере — в последнее время) будет выглядеть немного коряво. Хотя qt надо отдать должное — он под gtk маскируется довольно хорошо (ну разве кроме иконок). MC> Ну а у wxwidgets и вправду вроде бы три разных бэкенда под разные платформы, хотя въедливые коллеги могут подметить, что, помимо внешнего вида кнопочек, существуют такие важные вещи, как stock-иконки в gtk, расположение пунктов меню и т.п. MC> А фразу про kde в windows я тоже как-то не понял.
Ну я, говоря про бред, именно про kde в windows говорил
Здравствуйте, vadimcher, Вы писали:
V>Здравствуйте, vadimcher, Вы писали:
V>>Задаю здесь, а не в Средства разработки или, не дай Бог, Священные войны, т.к. интересует именно приложение к C++, более того, под Win32.
Если это ты написал "C++, более того, под Win32." то я буду настаивать на WTL.
Это нативная очень тонкая прослойка (что-то около 6 .h файлов) для С++ для именно w32/w64 и mobile.
Вообще подход WTL полезен для изучения как образец наименее интрузивного способа оборачиваия win api.
(Интересно было бы глянуть на нечто аналогичное но для скажем Gnome или чистых X если такое наличествует в природе)
Qt это строго говоря не есть С++ ибо требует своего препроцессора для компиляции.
GTK+ это набор сугубых C API. Для C++ тебе потребуется gtkmm или аналогичные конструкции.
Приветствую, c-smile, вы писали:
c> Если это ты написал "C++, более того, под Win32." то я буду настаивать на WTL.
Если человек решит впоследствии писать кроссплатформенно, то с твоим советом ему потом придется переучиваться.
Здравствуйте, Sheridan, Вы писали:
S>Приветствую, c-smile, вы писали:
c>> Если это ты написал "C++, более того, под Win32." то я буду настаивать на WTL. S>Если человек решит впоследствии писать кроссплатформенно, то с твоим советом ему потом придется переучиваться.
+1 к тов. c-smile. Кроссплатформенный GUI существует лишь в теории. Если есть такой заказ, то кроссплатформенной делать надо собственно программу, а UI цеплять в соответствии с капризами платформы. Потому как пользователям все равно что вы сэкономили на разработке и если вы сэкономили на их юзабилити — они не простят.
Приветствую, SleepyDrago, вы писали:
SD> +1 к тов. c-smile. Кроссплатформенный GUI существует лишь в теории.
Странно, я эту теорию уже неоднократно применял на практике...
Здравствуйте, Sheridan, Вы писали:
SD>> +1 к тов. c-smile. Кроссплатформенный GUI существует лишь в теории. S>Странно, я эту теорию уже неоднократно применял на практике...
Ты просто не писал commercial-quality приложения. Чаще всего надо или делать уж совсем кастомный UI, или писать нативный UI под каждую платформу.
Приветствую, Cyberax, вы писали:
C> SD>> +1 к тов. c-smile. Кроссплатформенный GUI существует лишь в теории. C> S>Странно, я эту теорию уже неоднократно применял на практике... C> Ты просто не писал commercial-quality приложения. Чаще всего надо или делать уж совсем кастомный UI, или писать нативный UI под каждую платформу.
Здравствуйте, Sheridan, Вы писали:
C>> SD>> +1 к тов. c-smile. Кроссплатформенный GUI существует лишь в теории. C>> S>Странно, я эту теорию уже неоднократно применял на практике... C>> Ты просто не писал commercial-quality приложения. Чаще всего надо или делать уж совсем кастомный UI, или писать нативный UI под каждую платформу. S>Что мешает писать кастомный уй на основе куте?
Смысла нет. Это не так уж просто делается — проще взять родной для системы тулкит.
Скажем, на Маке имеет смысл брать Cocoa и не заниматься фигнёй. На Линуксе — QT. На Винде, разве что, можно брать что угодно — так как везде бардак.
M>Еще раз. Что такое «тяжелые расширители»?
Хотя бы взять пример stylesheet, в нем настройки интерфеса прописаны в неком формате QSS — жалком подобии CSS. Если уже реализовывать HTML подобный интерфейс, то уже как в HTMLLayout и прочих HTML библиотеках, а так получилось и родные интерфейсы не поддерживает, и нормальный HTML не дает.
M>Что, если родная для системы кнопка не поддерживает рисунок? (Кнопка в винде рисунки не поддеривает, насколько я понмю)
Да, Windows не поддерживает кнопок, это считается под Windows что лишь мешает в работе. GNOME поддерживает эти кропки, но я слышал о предложении отлючить их и там.
В этом случае под GTK+ используется родная прорисовка, а под виндовс ничего другого не остается, как рисовать через OwnerDraw: http://svn.wxwidgets.org/svn/wx/wxWidgets/trunk/src/msw/button.cpp
Но я, чесно говоря, никогда рисунки к кнопкам не ставил.
В общем если какая то возможность не принята под конкретной осью, то она вполне может быть не реализована там.
M>Ты вообще Qt видел? Или эта, вообще разбираешься в том, что такое сабклассинг там. Не? Кнопка с рисунком — точно такой же сабкласс кнопки, а не «просто прямоугольник на форме».
Контролы в Qt — это Window less элементы, то есть они ничего общего с родными контролами не имеют, а их цвет и поведение — это чистая эмуляция. Поэтому с точки зрения операционной системы — это всего лишь прямоугольник, который отрисовывает внешняя либа. Ты не знал об этом?
Впрочем кнопка довольно неплохо эмулируется в Qt.
M>Несмотря на то, что эти вопросы задавал не я, все же отвечу. В OpenSUSE стандартный DM — KDE. И стандартный DE под дистрибутивы... А нет такого понятия, как стандартный DE под дистрибутивы.
А википедия считает, что GNOME и KDE — это DE http://en.wikipedia.org/wiki/Desktop_environment#Examples_of_desktop_environments
"стандартный DE под дистрибутивы" — это как правило то, который ставится по умолчанию. Но поставить "не стандартный" можно, скачав его.
M>Более того, Gnome посленее время развивается очень медленно.
Зато KDE4 так быстро "развивается", что он стал не юзабельным и я постоянно слышу, что кто то с него сваливает.
Сейчас популярны под Linux они оба, но к этой теме это уже не относится.
M>Пипец. Такого бреда я еще никогда не слышал.
А это уже неконструктивная критика.
Приветствую, Cyberax, вы писали:
C> Здравствуйте, Sheridan, Вы писали:
C> S>Что мешает писать кастомный уй на основе куте? C> Смысла нет. Это не так уж просто делается — проще взять родной для системы тулкит. C> Скажем, на Маке имеет смысл брать Cocoa и не заниматься фигнёй. На Линуксе — QT. На Винде, разве что, можно брать что угодно — так как везде бардак.
А казалось бы — возьми Qt и сделай сразу под 3 платформы. Ан нет, мы будем мучаться...
Здравствуйте, Sheridan, Вы писали:
C>> Смысла нет. Это не так уж просто делается — проще взять родной для системы тулкит. C>> Скажем, на Маке имеет смысл брать Cocoa и не заниматься фигнёй. На Линуксе — QT. На Винде, разве что, можно брать что угодно — так как везде бардак. S>А казалось бы — возьми Qt и сделай сразу под 3 платформы. Ан нет, мы будем мучаться...
А пользователи на Маках потом плеваться будут, да?
Здравствуйте, astral_marine, Вы писали:
M>>Ты вообще Qt видел? Или эта, вообще разбираешься в том, что такое сабклассинг там. Не? Кнопка с рисунком — точно такой же сабкласс кнопки, а не «просто прямоугольник на форме». _>Контролы в Qt — это Window less элементы, то есть они ничего общего с родными контролами не имеют, а их цвет и поведение — это чистая эмуляция. Поэтому с точки зрения операционной системы — это всего лишь прямоугольник, который отрисовывает внешняя либа. Ты не знал об этом?
Не совсем. Скажем, в Windows используется родной механизм тем для отрисовки элементов управления. В чем элементарно можно убедиться, если поставить нестандартную тему и запустить QT.
Приветствую, Cyberax, вы писали:
C> S>А казалось бы — возьми Qt и сделай сразу под 3 платформы. Ан нет, мы будем мучаться.. C> А пользователи на Маках потом плеваться будут, да?
На что? Ты же делаешь html. На его основе — гуй. На что плеваться? Qt webkit вроде нормально рисует хтмл контролы...
Здравствуйте, Sheridan, Вы писали:
C>> S>А казалось бы — возьми Qt и сделай сразу под 3 платформы. Ан нет, мы будем мучаться.. C>> А пользователи на Маках потом плеваться будут, да? S>На что? Ты же делаешь html. На его основе — гуй. На что плеваться?
HTMLayout позволяет делать уникальный дизайн, а не плохую имитацию платформы.
S>Qt webkit вроде нормально рисует хтмл контролы...
WebKit в QT и близко не подходит по возможностям к htmlayout'у.
S> C> Ты просто не писал commercial-quality приложения. Чаще всего надо или делать уж совсем кастомный UI, или писать нативный UI под каждую платформу.
S> Что мешает писать кастомный уй на основе куте?
Hello, astral_marine, you write:
a> M>Еще раз. Что такое «тяжелые расширители»?
a> Хотя бы взять пример stylesheet, в нем настройки интерфеса прописаны в неком формате QSS — жалком подобии CSS. Если уже реализовывать HTML подобный интерфейс, то уже как в HTMLLayout и прочих HTML библиотеках, а так получилось и родные интерфейсы не поддерживает, и нормальный HTML не дает.
Мде, это явно тяжелые расширители сознания.
А реализация собственой кнопки — это примитивная операция, которая не всегда оправдывает использование тяжелых расширителей.
Тебя кто-то заставляет использовать QSS? Тебе кто-то мешает реализовать свою кнопку в Qt? Эти самы тяжелые расширители мешают?
a> M>Что, если родная для системы кнопка не поддерживает рисунок? (Кнопка в винде рисунки не поддеривает, насколько я понмю)
a> Да, Windows не поддерживает кнопок, это считается под Windows что лишь мешает в работе. GNOME поддерживает эти кропки, но я слышал о предложении отлючить их и там. a> В этом случае под GTK+ используется родная прорисовка, а под виндовс ничего другого не остается, как рисовать через OwnerDraw: a> http://svn.wxwidgets.org/svn/wx/wxWidgets/trunk/src/msw/button.cpp a> Но я, чесно говоря, никогда рисунки к кнопкам не ставил.
Именно я об этом и говорил — что в wxWidgets в таком случае придется поддерживать два способа отрисовки — родные контролы и эмуляцию
a> В общем если какая то возможность не принята под конкретной осью, то она вполне может быть не реализована там.
a> M>Ты вообще Qt видел? Или эта, вообще разбираешься в том, что такое сабклассинг там. Не? Кнопка с рисунком — точно такой же сабкласс кнопки, а не «просто прямоугольник на форме».
a> Контролы в Qt — это Window less элементы, то есть они ничего общего с родными контролами не имеют, а их цвет и поведение — это чистая эмуляция. Поэтому с точки зрения операционной системы — это всего лишь прямоугольник, который отрисовывает внешняя либа. Ты не знал об этом?
a> Впрочем кнопка довольно неплохо эмулируется в Qt.
Пипец. Тебе-то какая разница, как это видит ОС?
a> M>Несмотря на то, что эти вопросы задавал не я, все же отвечу. В OpenSUSE стандартный DM — KDE. И стандартный DE под дистрибутивы... А нет такого понятия, как стандартный DE под дистрибутивы.
a> А википедия считает, что GNOME и KDE — это DE
А стандартный DE под дистрибутивы это GNOME, а не KDE — его выбирали Fedora, Debian, OpenSUSE, Ubuntu и другие ведущие дистрибутивы Linux.
Нет такого понятия, как стандартный DE в мире линукса
a> M>Более того, Gnome посленее время развивается очень медленно. a> Зато KDE4 так быстро "развивается", что он стал не юзабельным и я постоянно слышу, что кто то с него сваливает. a> Сейчас популярны под Linux они оба, но к этой теме это уже не относится.
Относится к твоим словам, в которых ты утверждаешь, что Gnome — это стандарный DE
a> M>Пипец. Такого бреда я еще никогда не слышал. a> А это уже неконструктивная критика.
Более, чем. Напомнить твои слова?
А под Windows Qt это всего лишь портированный KDE с взятыми из системы цветами,