Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Программирование под *nix > Общие вопросы программирования
Перезагрузить страницу Принципы оконного интерфейса
Ответ
 
Опции темы Опции просмотра
  (#76 (permalink)) Старый
Alexiski Alexiski вне форума
Любитель давать советы
 
Сообщений: 4,266
Сказал(а) спасибо: 27
Поблагодарили 54 раз(а) в 54 сообщениях
Регистрация: 16.10.2005
По умолчанию 12.12.2007, 01:24

Цитата:
С UML я не знаком, что там понимается под диаграммами не знаю, но вот что говорит Wikipedia:
Напомнило классику: "Я эту книгу не читал, но мнение выскажу"
Может, прежде чем писать в таком ключе, стоит все-таки стоит ознакомиться с UML, где диаграмма - такой же термин, как класс в ООП?
Представьте, что Вы начнете кому-то рассказывать про классы и объекты, а он в ответ: "Я с вашим С++ не знаком, зато я точно знаю, что такое класс. Это такая комната в школе, с партами и доской. Вот и в наукопедии по этому поводу написано.."


Скажите, а стремление изобрести свой велосипед обязательно должно сопровождаться желанием заставить всех на нем кататься?
Ответить с цитированием
  (#77 (permalink)) Старый
Yaroslav Yaroslav вне форума
Member
 
Сообщений: 166
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 23.10.2004
По умолчанию 12.12.2007, 08:02

Цитата:
Слово "интерактивный" когда-нибудь слышали? В Quake играли? Не надо думать, что интерфейс может быть только пошаговым. В динамических системах удобное управление тоже надо проектировать. Представьте, что вы управляете самолетом с четырьмя штурвалами - по одному на каждый закрылок...

С UML я не знаком, что там понимается под диаграммами не знаю, но вот что говорит Wikipedia:
Diagram - символическое представление информации.
Structure - принципиальное представление отношений между сущностями.
Перевожу. Информация, представленная в виде диаграмм может нести лишь повествовательный характер, т.е. с их помощью можно что-либо описать, например это может быть руководство к продукту. Допустим, в процессе проектирования чего-либо могут производиться какие-то расчеты, и иногда может быть полезно увидеть информацию в наглядном виде - тогда строятся диаграммы. Это как бы обратная связь, чтобы разработчик увидел промежуточный плод своей работы. Но непосредственно к самому проектированию они отношения не имеют, для этого используются структурные схемы, блок-схемы.

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


Цитата:
А в QT ВСЕ классы подвязаны к сборщику мусора или это опциональная фича, для части классов?
Если в определени класса ставишь Q_OBJECT то к даному классу применяется.

Цитата:
update:
Для пущей понятности поверну вопрос самым страшным образом:
Как написать переносимый Windows-Linux авиасимулятор или шутер?
Можно ли это хоть примитивно сделать, пусть без многопоточности и прочего, но чтобы работало быстро?
В Qt есть набор классов по работе с OpenGL. Можно создавать авиасимуляторы.
Но можно для этого использовать библиотеку allegro.
Ответить с цитированием
  (#78 (permalink)) Старый
Dian Dian вне форума
Member
 
Сообщений: 5,243
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 17.09.2004
По умолчанию 12.12.2007, 09:49

Цитата:
Originally posted by Arachnelis
[b]Слово "интерактивный" когда-нибудь слышали? В Quake играли?
Да, тут спору нет... что ж, SLI в помощь

Цитата:
Originally posted by Arachnelis+-->
Цитата:
Diagram - символическое представление информации.
В частном случае - графическое. Всё встанет на свои места, если понять, что информация по большому счету может быть любой - в том числе:
Цитата:
Originally posted by Arachnelis@
[b]Structure - принципиальное представление отношений между сущностями.
Так что

<!--QuoteBegin-Alexiski

[b]Скажите, а стремление изобрести свой велосипед обязательно должно сопровождаться желанием заставить всех на нем кататься?
А то! Иначе же не интересно

Цитата:
"Я с вашим С++ не знаком, зато я точно знаю, что такое класс. Это такая комната в школе, с партами и доской. Вот и в наукопедии по этому поводу написано.."
Блестящая аналогия
Ответить с цитированием
  (#79 (permalink)) Старый
Arachnelis Arachnelis вне форума
Member
 
Сообщений: 1,324
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 02.07.2007
Thumbs up 12.12.2007, 13:25

Цитата:
Скажите, а стремление изобрести свой велосипед обязательно должно сопровождаться желанием заставить всех на нем кататься?
Эту фразу вы явно не в тот топик постировали
Здесь я спрашиваю о том, чего не знаю, а там - рассказываю то, что знаю. Все-таки есть разница


QT
Значит, можно все-таки писать без автосборщика, ориентируясь на требование быстродействия?

OpenGL - хорошо, а присутствуют ли такие возможножности как:
- низкоуровневый отлов комманд мыши или клавиатуры
- таймер
- самостоятельная отрисовка окна, как по WM_PAINT в Windows

В Windows мне удавалось, работая непосредственно на WinAPI, создавать очень быстрые окна - обработка сообщения выполнялась за 0мс (да, бывает, что и такое нужно).
Возможны ли такие махинации при работе с QT? Или только напрямую с X-Window System?


А c wxWidjets здесь никто не знаком?
Что лучше документировано и в среднем чаще встречается - QT или wxWidjets?
Еще какие-нибудь кроссплатформенные библиотеки (только с широкими возможностями) существуют?
Ответить с цитированием
  (#80 (permalink)) Старый
Arachnelis Arachnelis вне форума
Member
 
Сообщений: 1,324
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 02.07.2007
По умолчанию 12.12.2007, 13:26

Внимательно поразбирался насчет UML и слова "диаграмма".

1. Если я правильно понял, UML позволяет автоматизировать известную структуру. Если так, то он тут вообще не в тему. Или я еще чего-то не увидел, или спроектировать интерфейс он никак не поможет.
Если кто думает, что интерфейс строится по принципу "нажми на кнопку - получишь результат", то неправильно представляет себе не только работу эргономиста, но и суть самого понятия интерфейса. Грамотный интерфейс строится с совершенно другого угла и с совершенно другим подходом, абстрактно и понятийно, как средство управления продуктом, который сам является средством, но не как продукт и вообще не как самоцель. А интерфейс, построенный по такому "кнопочному" принципу у пользователей зачастую вызывает пренебрежение - когда хочешь что-то сделать, приходится долго добиваться от программы, чтобы она тебя "поняла".
РЕЗУЛЬТАТ проектирования интерфейса, конечно, можно включить в общую схему проекта, изображенную в виде "диаграммы" UML, если нужно. Но как он может помочь в РАЗРАБОТКЕ интерфейса, я пока не увидел. Поставить блок - кнопочка - при ее нажатии активируется такая-то функция - это не есть проектирование интерфейса, это воплощение результата его проектирования. Но для этих целей я пока и с С++ неплохо справляюсь, а на изучение того, что начальство не требует, времени нет.

Расшифровка словосочетания "интерфейс программного обеспечения" как "средство управления средством" большинством людей воспринимается как кавардак, потому об интерфейсе постоянно и забывают, склеивая ПО с его интерфейсом.

<offtop>
2. Слово "диаграмма" происходит из греческого, "диа-" - означает "разделение", "врозь".
Примеры - диафильм (набор кадров), диалог (вопреки расхожему мнению, что диалог происходит от "ди-" и в нем могут участвовать лишь двое).
Диаграмма - это когда рядом рисуют отделенные друг от друга вещи, очевидно для того, чтобы их можно было наглядно сравнить между собой, сопоставить.
Если же между вещами существуют обязательные связи (сама цель рисования заключается в разбивке процесса на этапы или целого на составляющие) - строят "граф" либо "схему".

Вывод - создатели UML выбрали красивое звучное слово, не задумываясь о корректности его смысла.
</offtop>

А вообще, использовать какого-либо производителя в качестве авторитетной ссылки на смысл некоторого слова в общем случае само по себе некорректно, для этого есть филологи.

Кстати, спросил друга на тему происхождения слова "window", ибо начал думать, что у англоговорящих окно может быть ветровое ("wind"), а не смотровое, как унас ("око"). Подумал, что это могло бы все объяснить - обмен воздухом и прохождение звуков - двусторонняя связь.
Он покопался и сказал, что слово "window" происходит от северно-норвежского "wind", означающего тоже "глаз" - так что выбор термина по-прежнему не понятен (разве только его автор как раз и впал в заблуждение насчет ветра).
Ответить с цитированием
Ads.
  (#81 (permalink)) Старый
Dian Dian вне форума
Member
 
Сообщений: 5,243
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 17.09.2004
По умолчанию 12.12.2007, 16:50

Цитата:
Но как он может помочь в РАЗРАБОТКЕ интерфейса, я пока не увидел
В UML есть понятие вариантов использования (Use Case).Они призваны систематизировать понимание того, что нужно будет пользователю от программы, какие операции он будет выполнять. Use Case как раз можно использовать при разработке интерфейса

[offtop]
Цитата:
на тему происхождения слова "window", ибо начал думать, что у англоговорящих окно может быть ветровое ("wind")
ms Windows => Ветер в голове
P.S. Кто-нибудь в курсе, почему на логотипе винды окна закрашены?
[/offtop]
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Некоторые принципы по написанию программ, для новичков dect Общие вопросы создания ПО 15 24.09.2011 19:18
Общие принципы организации синтаксического разбора в С++ 45182 Вопросы начинающих программистов 2 09.01.2011 18:41
Программа демонстрирующая принципы ООП (полиморфизм, инкапсуляцию, наследование) TidalAeon Вопросы начинающих программистов 0 11.12.2010 16:32
Принципы управления DVD и CD приводами tumanovalex Железо. Написание драйверов 0 29.08.2008 00:21
Принципы решения написания программы Frullani Lisp 2 27.09.2007 19:23
Принципы форматирования файлов shatush Общетематический 3 29.06.2007 23:16
Создание оконного приложения для Windows с 98 на VS2005 Antsu Visual C++ 5 17.01.2007 10:34
Объясните общие принципы работы CAsyncSocket Palmman Сетевое программирование 2 02.10.2006 20:28
Принципы создания средствами VC++ 6.0 интерфейса типа "проводник" Postum Visual C++ 8 26.01.2005 18:10
Принципы написания трояна Anonymous Delphi 30 19.03.2004 16:37
Принципы DoS-атак как их создавать Felix Delphi 2 11.01.2004 06:27
Принципы работы менеджера виртуальных экранов lv Visual C++ 0 01.11.2003 05:24



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов