Русский стандарт. (Если не мы, то кто?)

Любые разговоры которые хоть как-то связаны с тематикой форума

Модератор: Модераторы разделов

Аватара пользователя
iljaCPP
Сообщения: 48
ОС: Slackware

Русский стандарт.

Сообщение iljaCPP »

Стандарты, вообще, штука консервативная.
Есть C89, есть C++ 98. Это стандарты, и их поддерживают все компиляторы.
Есть расширения от микрософта, борланда, гну и.т.д, но это всего лишь взгляды вперед, как правило ошибочные.
Я хотел сказать про десктопный стандарт.
В посикс системах его нет. Просто нет и все.
Есть яблочный стандарт. Есть стандарт от микрософта. Но линукс, фря, опен, нет и пр. такого стандарта не имеют.
Поясню подробнее. Существует спецификация freedesktop.org
Да, она освещает ряд вопросов(черезвычайно своеобразно кстати). Но, она не решает основного вопроса интеграции UI.
Я пишу прорамму. Мне надо узнать, как потльзователь предпочитает видеть кнопку. С прямоуольными краями, с шириной бордера 1пикс, с градиентом и т.д.
Я как программист, должен выяснить, что за ДЕ у пользователя. KDE, GNOME или иная. А дальше тупик. Потому что у пользователя xfce, а я и подумать не мог, что этот особенный юзер посмеет поставить не гном и не кеды.

Теперь про GTK и тупость ряда топовых девелоперов. Вообще, прошу меня простить, но они смахивают на пассивных гомосексуалистов.
Они взяли за основу гимп, и с тех пор Gobject правит миром. Этот самый обжэкт пытается быть сурогатом C++, он внедряет в язык C некое подобие ООП. Ну и фиг бы с ним, если бы не биндинги в числе которых gtkmm. Я не могу сказать, что там все так плохо. Почитав исходники, я обзавелся некоторыми идеями. Но сам принцип использования языка C++, обладающего достаточной объектной моделью, с целью преобразования этого хозяйства в сишные сурогаты объектов кажется утопией. Ужас вобщем. Ну и хочу верннуться к вопросу секс. ориентации.
А разве нормальный человек нарисует кнопку шириной в половину экрана? Или нормальный человек сделает окно в 2*w x 2*h ?
Либо им микрософт платит за подобные художества, либо они какие-то странные люди.

Вобщем, про стандарт.
Необходимо разработать библиотеку системных контролов(виджетов), ктоорая будет основой для построения GUI. Именно эта библиотека должна обеспечить возможность пользователя выбора темы, цветовой схемы, и пр. Все гуишные либы должны будут брать данные из этой единой библиотеки. Для реализации потребуются патчи для Qt, GTK, свинга свт и прочих тулкитов, пока эти странные люди не соблаговолят понять и принять.
Вообще, эти вопросы должны лечь на девелоперов иксов, но им также пофиг, как гткашникам до русской раскладки.
Но пока они пальцем не пошевелять, почему мы страдаем?
Спасибо сказали:
Аватара пользователя
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian

Re: Русский стандарт.

Сообщение diesel »

вообще как есть GNOME HIG http://library.gnome.org/devel/hig-book/stable/
Спасибо сказали:
GuttaLinux
Сообщения: 212
ОС: 1004/804/910/sid/etch/arch

Re: Русский стандарт.

Сообщение GuttaLinux »

потому что нет такой системы - Linux. Ты молод, азартен, и хочешь сыграть в лоттерею, но с высоким шансом выиграть? Пиши для Gnome для Ubuntu - да, Ъслакваристы типа меня будут тебя всеми фибрами ненавидеть, но раз ты пишешь ширпотреб - и пиши её для широкого потребления. будут все писать для ubuntu/gnome - это и будет стандарт №1, и все остальные будут обязаны с ним считаться. А если ты на ровном месте попытаешься организовать стандарт - это будет просто ещё один никому не нужный стандарт.
Я иду на платформу 10.04
Спасибо сказали:
Аватара пользователя
Davinel
Сообщения: 481
ОС: Ubuntu

Re: Русский стандарт.

Сообщение Davinel »

iljaCPP писал(а):
16.10.2009 22:17
Я пишу прорамму. Мне надо узнать, как потльзователь предпочитает видеть кнопку. С прямоуольными краями, с шириной бордера 1пикс, с градиентом и т.д
Я как программист, должен выяснить, что за ДЕ у пользователя. KDE, GNOME или иная. А дальше тупик. Потому что у пользователя xfce, а я и подумать не мог, что этот особенный юзер посмеет поставить не гном и не кеды.

Я может чего то не понимаю, но зачем? При чем тут ДЕ? Я так понял вы делаете приложение на gtk - оно будет одинаково выглядеть во всех ДЕ и ВМ. Вам не надо думать о том, какую кнопочку делать, вам нужно всего лишь поставить в нужное место объект "кнопка" а её визуальное оформление определяется установленной у пользователя gtk темой. Т.е. Пользователь САМ думает о том, какой он предпочитает видеть кнопку. Ну или не думает и пользуется стандартной темой, но это не важно :) С Qt вообщем то тоже самое.
Определять внешний вид кнопочек и других элементов в программе ни в коем случае нельзя, а то мы получим зоопарк как в win, где одно приложение косит под висту, другое под макось, а какое то пришло к нам из вин95 и у всех свои кнопочки, свои скролбары и вообще все элементы оформления свои.
Спасибо сказали:
Аватара пользователя
iljaCPP
Сообщения: 48
ОС: Slackware

Re: Русский стандарт.

Сообщение iljaCPP »

Из числа ответивших ни один не понял сути.
Библиотеки, будь то Qt, GTK, wx и т.д., используют собственные конфиги и собственные методы для отрисовки виджетов.
Это не правильно. Библиотек много, конфиги в разных местах, элементы интерфейса выглядят по-разному.
Фактически пользователь не может настроить свои предпочтения, т.к. не зависимо от его выбора будут приложения, выглядящие не так как он хочет.
Суть такова. Необходима библиотека, являющаяся промежуточным слоем между libX11 и всеми остальными графическими библиотеками. Тулкиты должны загружать эту библиотеку, и брать из ее API данные для отрисовки виджетов.

GuttaLinux, я не согласен. Linux, это операционная система, единственным обязательным компонентом которой является ядро. Все остальное на выбор пользователя.

Davinel, на Qt я пишу, но это тут не причем, выше я объяснил суть.
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: Русский стандарт.

Сообщение watashiwa_daredeska »

iljaCPP писал(а):
17.10.2009 15:43
Фактически пользователь не может настроить свои предпочтения, т.к. не зависимо от его выбора будут приложения, выглядящие не так как он хочет.
Для любителей ходить строем есть другие ОС. Но даже в них есть приложения, внешний вид которых нужно настраивать отдельно — эти уродские «скины» захватывают мир.

Не мешайте мне издеваться над look&feel моей системы.

iljaCPP писал(а):
16.10.2009 22:17
Необходимо разработать библиотеку системных контролов(виджетов), ктоорая будет основой для построения GUI. Именно эта библиотека должна обеспечить возможность пользователя выбора темы, цветовой схемы, и пр. Все гуишные либы должны будут брать данные из этой единой библиотеки. Для реализации потребуются патчи для Qt, GTK, свинга свт и прочих тулкитов, пока эти странные люди не соблаговолят понять и принять.
Для начала, можно испробовать задачу попроще. Уже есть готовые библиотеки виджетов. Пусть все рисуют через GTK+, в том числе и Qt. Или через Qt, если Вам так больше нравится, в том числе и GTK+. К слову, уже есть похожие прецеденты: у McCLIM есть бэкенд для отрисовки через GTK.

iljaCPP писал(а):
16.10.2009 22:17
Вообще, эти вопросы должны лечь на девелоперов иксов, но им также пофиг, как гткашникам до русской раскладки.
Они-то тут при чем вообще?


Davinel писал(а):
17.10.2009 15:12
Я может чего то не понимаю, но зачем? При чем тут ДЕ?
При том, что дело не только в визуальном представлении виджетов. Есть всякая муть, которая предоставляется сервисами DE. Некоторые приложения можно собрать без поддержки DE, тогда кое-что будет недоступно, но зато не будет взлетать половина DE при запуске приложения у тех, кто этой DE не пользуется.
Спасибо сказали:
Аватара пользователя
lava
Сообщения: 155
ОС: archer

Re: Русский стандарт.

Сообщение lava »

iljaCPP писал(а):
17.10.2009 15:43
Из числа ответивших ни один не понял сути.
Библиотеки, будь то Qt, GTK, wx и т.д., используют собственные конфиги и собственные методы для отрисовки виджетов.
Это не правильно. Библиотек много, конфиги в разных местах, элементы интерфейса выглядят по-разному.
Фактически пользователь не может настроить свои предпочтения, т.к. не зависимо от его выбора будут приложения, выглядящие не так как он хочет.
Суть такова. Необходима библиотека, являющаяся промежуточным слоем между libX11 и всеми остальными графическими библиотеками. Тулкиты должны загружать эту библиотеку, и брать из ее API данные для отрисовки виджетов.

Вот до сих пор не понимаю, что Вам не нравится.

Что значит "элементы интерфейса выглядят по-разному"?
Если речь о разных скинах у Gtk и Qt, то gtk-qt-engine делает приложения на Gtk нативными в Qt-среде, а Qt4-приложениям можно поставить тему Gtk+ через Qt4 Config и тогда qt-приложения будут выглядеть нативно в Gtk-среде.
Тот же XFCE использует Gtk и к нему применимы все правила Гнома.

Размещение кнопок же лежит на программисте. Или пользователь должен сам определять, где у приложения нужная ему кнопка должна быть?


А вот моё отношение к созданию ещё одной прослойки резко отрицательное. Чем в большее количество врапперов программист заворачивает приложение, тем оно стоновится больше, сложнее, медленнее, ...

И это, обратите внимание на Tcl/Tk что ли...
Спасибо сказали:
Аватара пользователя
iljaCPP
Сообщения: 48
ОС: Slackware

Re: Русский стандарт.

Сообщение iljaCPP »

lava, при использовании gtk-qt-engine диалоги будут выглядеть также как в Qt? Например, диалог открытия файла.
А насчет увеличения размера и производительности программ, так тут наоборот, из различных библиотек выкидывается ставшим ненужным код.
Спасибо сказали:
Аватара пользователя
lava
Сообщения: 155
ОС: archer

Re: Русский стандарт.

Сообщение lava »

iljaCPP, выкидывается ненужный код? Ого.
Это примерно равно разработке ещё одного "стандарта" и принудительному переводу всех программистов на него. С тем же успехом можно заставить всех использовать тот же Qt или Gtk
Спасибо сказали:
Аватара пользователя
iljaCPP
Сообщения: 48
ОС: Slackware

Re: Русский стандарт.

Сообщение iljaCPP »

lava, не всех, а девелоперов тулкитов. Для остальных процесс остается прозрачным, ну или почти прозрачным в зависимости от того как далеко зайти.
Если бы Qt рисовала через GTK, либо наоборот, это возможно было бы выходом. Но этого не произошло.
Разработчикам библиотек следовало бы сесть за стол переговоров, и придумать единый API, пусть даже носящий информационный характер(в том смысле, что от этого API не требуется функций по созданию окон, обработки событий и пр.). Но разработчики не желают этого делать.
Как бы подтолкнуть их к этим действиям?
Спасибо сказали:
Аватара пользователя
agentprog
Сообщения: 362
Статус: Ad Astra per aspera
ОС: openSUSE 11.4, Arch

Re: Русский стандарт.

Сообщение agentprog »

ну так то же Qt умеет рисовать себя при помощи GTK! насчет умеет GTK рисовать себя при помощи Qt не знаю.
No problems - just solutions!
Спасибо сказали:
Аватара пользователя
Davinel
Сообщения: 481
ОС: Ubuntu

Re: Русский стандарт.

Сообщение Davinel »

iljaCPP писал(а):
17.10.2009 16:21
при использовании gtk-qt-engine диалоги будут выглядеть также как в Qt? Например, диалог открытия файла.

Ну так вот лучше бы этим и занялись. Чтобы в gtk среде Qt программы использовали gtk диалоги и наоборот.
Спасибо сказали:
Аватара пользователя
Bluetooth
Сообщения: 4395
Статус: Блюзовый
ОС: Debian Squeeze amd64

Re: Русский стандарт.

Сообщение Bluetooth »

Увидев заголовок темы, я подумал, что речь идет о водке. А на деле все намного хуже. Еще один "хочу чтоб вместо всех дистров, вместо всех ДЕ было что-нибудь одно" :) Кстати, решается это очень просто - берете любой дистр, любое ДЕ, и воображаете, что ничего другого не существует. Все. Все щасливы :)
Спасибо сказали:
Аватара пользователя
lava
Сообщения: 155
ОС: archer

Re: Русский стандарт.

Сообщение lava »

iljaCPP писал(а):
17.10.2009 16:21
Например, диалог открытия файла.


Изображение
wut? Почему у меня в Qt-based Опере диалог гномий? Может, потому что среда Gtk-based?
Спасибо сказали:
Аватара пользователя
iljaCPP
Сообщения: 48
ОС: Slackware

Re: Русский стандарт.

Сообщение iljaCPP »

lava, я сейчас посмотрел configure, там есть такое

Qt/X11 only:

-no-gtkstyle ....... Do not build the GTK theme integration.
+ -gtkstyle .......... Build the GTK theme integration.

У меня прога линкуется со стаической сборкой Qt, там диалоги Qt-шные, попробую принудительно пересобрать с этой опцией.
А в опере в xfce действительно диалоги от GTK.
Интересно, этот режим можно как-нибудь принудительно для Qt активировать? Чтобы во всех приложениях Qt использовался стиль GTK независимо от ДЕ.
Тогда для большинства приложений вопрос будет решен, останется только допилить различные gtk-engines для более полного соответствия стилям. Там диалоги кустомизировать и комбобоксы у GTK своеобразные. И тогда необходимость в gtk-qt-engine вообще отпадет.

А вот наоборот не получится. GTK никак не сможет загрузить стиль из Qt, т.к. написана на C, а gtk-qt-engine еще тот костыль.
Спасибо сказали:
Аватара пользователя
iljaCPP
Сообщения: 48
ОС: Slackware

Re: Русский стандарт.

Сообщение iljaCPP »

Bluetooth, нет, я хочу как раз другого. Чтобы пользователь действительно имел свободу выбора. Если выбрал определенный стиль, то он должен быть таким у всех приложений.
Спасибо сказали:
Аватара пользователя
Bluetooth
Сообщения: 4395
Статус: Блюзовый
ОС: Debian Squeeze amd64

Re: Русский стандарт.

Сообщение Bluetooth »

iljaCPP писал(а):
18.10.2009 02:39
Bluetooth, нет, я хочу как раз другого. Чтобы пользователь действительно имел свободу выбора. Если выбрал определенный стиль, то он должен быть таким у всех приложений.

Для этого и в гноме, и в кедах есть спец. костыли. Но каким боком это относится к какой-то стандартизации?
Спасибо сказали:
Аватара пользователя
iljaCPP
Сообщения: 48
ОС: Slackware

Re: Русский стандарт.

Сообщение iljaCPP »

Не, не костыли. Qt4 действительно обеспечил полную работу через GTK, молодцы.
Оказалось все просто, надо в конфигураторе выбрать стиль GTK+, а я раньше думал, что это очередная эмуляция стиля.
К стандартизации это имеет самое прямое отношение. В таком состоянии мы можем назвать библиотеку GTK+2 стандартной для линуксового GUI. Ее только желательно подпилить немножко.
Спасибо сказали:
Аватара пользователя
Bluetooth
Сообщения: 4395
Статус: Блюзовый
ОС: Debian Squeeze amd64

Re: Русский стандарт.

Сообщение Bluetooth »

iljaCPP писал(а):
18.10.2009 02:58
Не, не костыли. Qt4 действительно обеспечил полную работу через GTK, молодцы.
Оказалось все просто, надо в конфигураторе выбрать стиль GTK+, а я раньше думал, что это очередная эмуляция стиля.
К стандартизации это имеет самое прямое отношение. В таком состоянии мы можем назвать библиотеку GTK+2 стандартной для линуксового GUI. Ее только желательно подпилить немножко.

А почему только GTK? Почему не GTK и qt? почему не берем в рассчет ncurses?
Спасибо сказали:
Аватара пользователя
iljaCPP
Сообщения: 48
ОС: Slackware

Re: Русский стандарт.

Сообщение iljaCPP »

ncurses немножко из другой стихии.
Именно GTK. Потому что обеспечив в Qt загрузку стилей GTK, появилась возможность придать приложениям единый внешний вид как минимум для 4-х распространенных библиотек - GTK, Qt, wxGTK, SWT. Может я еще чего-нибудь запамятовал?
Выбрав в Qt стиль GTK+, приложения обретают внешний вид, указанный в .gtkrc. Вот почему.
Спасибо сказали:
Аватара пользователя
Bluetooth
Сообщения: 4395
Статус: Блюзовый
ОС: Debian Squeeze amd64

Re: Русский стандарт.

Сообщение Bluetooth »

iljaCPP писал(а):
18.10.2009 03:30
Именно GTK. Потому что обеспечив в Qt загрузку стилей GTK, появилась возможность придать приложениям единый внешний вид как минимум для 4-х распространенных библиотек - GTK, Qt, wxGTK, SWT. Может я еще чего-нибудь запамятовал?
Выбрав в Qt стиль GTK+, приложения обретают внешний вид, указанный в .gtkrc. Вот почему.

Ну, наоборот тоже вроде можно. не знаю, правда, насчет wxGTK и SWT...
Спасибо сказали:
Аватара пользователя
iljaCPP
Сообщения: 48
ОС: Slackware

Re: Русский стандарт.

Сообщение iljaCPP »

Не, низя. GTK написана на C. Язык C не может загружать классы C++
Спасибо сказали:
Nymin
Сообщения: 1095
Статус: -
ОС: GNU/Linux

Re: Русский стандарт.

Сообщение Nymin »

а зачем "языку C загружать классы C++"? вы считаете, что при каждом обращении к GTK происходит его перекомпиляция?
и что вы хотите сказать словами "загружать классы"?
Спасибо сказали:
Аватара пользователя
iljaCPP
Сообщения: 48
ОС: Slackware

Re: Русский стандарт.

Сообщение iljaCPP »

Я про то как будет GTK рисовать через Qt.
Вы считаете, что сможет?
Приведите пример сишного кода, с помощью которого GTK могла бы рисовать виджеты, используя темы Qt.
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5447
ОС: Gentoo

Re: Русский стандарт.

Сообщение /dev/random »

iljaCPP писал(а):
18.10.2009 04:28
Я про то как будет GTK рисовать через Qt.
Вы считаете, что сможет?
Приведите пример сишного кода, с помощью которого GTK могла бы рисовать виджеты, используя темы Qt.

Gtk ресует виджеты через специальные движки, которые могут быть написаны хоть на фортране.
Спасибо сказали:
Аватара пользователя
kosmonaFFFt
Сообщения: 183
ОС: win 7, Kubuntu 10.10

Re: Русский стандарт.

Сообщение kosmonaFFFt »

ОМГ... Ну и развели...
А как быть с теми (типо мну) которым в одних приложениях нравится одна тема, в других - другая?
Спасибо сказали:
Аватара пользователя
iljaCPP
Сообщения: 48
ОС: Slackware

Re: Русский стандарт.

Сообщение iljaCPP »

/dev/random, это получается wrapper-транслятор в другие языки. В свое время фирма Borland захотела осчастливить людей, и написала Kylix. Им лень было свою библиотеку сочинять, и они взяли Qt. Чтобы паскаль мог отрисовывать графику сделали библиотеку-прослойку, которая использовалась при обращении к Qt.

kosmonaFFFt, GTK2_RC_FILES="$HOME/.mygtkrc" firefox
Спасибо сказали:
Аватара пользователя
agentprog
Сообщения: 362
Статус: Ad Astra per aspera
ОС: openSUSE 11.4, Arch

Re: Русский стандарт.

Сообщение agentprog »

iljaCPP писал(а):
19.10.2009 17:24
это получается wrapper-транслятор в другие языки

а что не так? вроде как мы добиваемся того, чего хотим - GTK рисует через Qt, а как уже мы это делаем (напрямую или через прослойки) это уже десятое дело
No problems - just solutions!
Спасибо сказали:
Аватара пользователя
Bluetooth
Сообщения: 4395
Статус: Блюзовый
ОС: Debian Squeeze amd64

Re: Русский стандарт.

Сообщение Bluetooth »

kosmonaFFFt писал(а):
19.10.2009 16:20
ОМГ... Ну и развели...
А как быть с теми (типо мну) которым в одних приложениях нравится одна тема, в других - другая?

Лечить их.
Спасибо сказали:
Аватара пользователя
iljaCPP
Сообщения: 48
ОС: Slackware

Re: Русский стандарт.

Сообщение iljaCPP »

В случае когда Qt рисует через GTK, это достигается весьма элегантно, Qt делает это внутри себя самой средствами своего языка, а не через внешний движок темы. В таком режиме она превращается в GTK-биндинг.
Если же мы делаем рисование Qt виджета из GTK посредством внешнего плагина, то это получается неправильно по крайней мере идеологически.
Любому QObject требуется статический класс QApplication, в котором вертится main loop, а также указатель на QObject *parent. Это какой же размер у такого модуля должен быть? И кстати, механизм GTK engines позволит вот так вот превратить GTK-шную петлю событий в Qt-аналог?
Есть у кого-нибудь человекопонятная дока по разработке engines?
Спасибо сказали: