Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» создание интерфейса (пользователя) прикладной программы

Автор: akaGM
Дата сообщения: 26.02.2005 15:17
ссылки по теме

http://usability.ru/
самый известный в рунете ресурс, серьезный подход, масса информации

http://www.info-system.ru
Раздел "Интерфейс" представляет информацию по проектированию и разработке пользовательского интерфейса к программным продуктам.

http://www.uibook1.ru/
Книга по проектированию интерфейса приложений (pdf)

MSDN по теме:
http://msdn.microsoft.com/library/en-us/dnwue/html/ch14e.asp
точные (в пикселах, размеры кнопок и прочих контролов для визуального проектирования)

---
просьба делать все аккуратно и однообразно: ссылка/краткое описание
-akaGM



***************************************************************************

хочу создать тему для обсуждения...

т.к. сам не специалист (в активе только два GUI под dos на Turbo- и SuperVision) , но по долгу службы встала такая проблема, то надеюсь получить (получать) здесь ответы на свои вопросы, а также реальные практические рекомендации более опытных коллег, кот. возможны именно только в общении...
чтение же специальной литературы (эргономика, юзабилити, то, се) -- вещь, конечно, оч. полезная, но... для моих, в общем-то, второстепенных задач -- сами понимаете...
только в качестве хобби... хотя сейчас гуи для меня и есть хобби...

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

итак, что предлагается к обсуждению:

- общие рассуждения "на тему", от универсальности к конкретике...
- вопрос-ответ, практика, "как мне сделать?"
- какую библиотеку под такой вот компилятор мне лучше использовать?
например, для неопределившихся (общие положения, не перекрывающиеся с другими
темами форума)
- SDI vs MDI -- когда и зачем?
- взаимодействие посредством toolBars, Menus, hotKeys -- что лучше и в каких случаях или
все в одном...
- деревья, списки и таблицы -- наглядность и/или удобство? где и когда?
- докинг, плавающие окна или жесткое местоположение...
- выделять или не выделять? "приборно-панельно-бумажные" цвета, цветовые схемы и
палитры
и т д


сам я использую VCL на Delphi, т.к. считаю эту систему в большинстве случаев истинной RAD-cистемой

понятно, что интерфейс определяется конкретным приложением и говорить о его универсальности можно с некоторой натяжкой...
можно, конечно, делать архиватор со скинами... кстати, это и делают...

предлагаю только исключить из обсуждения интерфейсы граф- и текстовых редакторов, а также медиа проигрывателей -- что тут еще можно сказать?


итак, в качестве затравки:

Дано:
-------
приложение --
счет, ввод/вывод данных, визуализация результатов, несколько (4-5) разнородных форм
Надо:
------
SDI Или MDI?


------------------------------------------------------------
нужна ли такая тема,
что скажете, коллеги?
Автор: EZH
Дата сообщения: 26.02.2005 20:13

Цитата:
нужна ли такая тема,
что скажите, коллеги?

Имхо, тема нужна, меня очень интересует, уже занес в закладки, лиж бы во флейм не превратилась, т.к. быстро может возникнуть пробема "вкуса, цвета и сотоварищей"


Цитата:
Дано:
-------
приложение --
счет, ввод/вывод данных, визуализация результатов, несколько (4-5) разнородных форм
Надо:
------
SDI Или MDI?

Я бы так сразу и не сказал то или другое. Всё-таки надо подробнее понять алгоритм обычной работы пользователя с программой.
Автор: FuzzyLogic
Дата сообщения: 26.02.2005 20:22
Я бы пожалуй попытался найти подобные программы в той же или околоживущих научных областях. Желательно серьезные разработки пользующиеся популярностью. По опыту скажу, что пользователи очень любят "интерфейс такой же как в ..." , где "..." то чем они уже пользуются. Поэтому неплохо было бы проанализировать рынок на этот счет, спросить пользователей чем пользуются, что нравится, что не очень, и оттуда уже плясать.
Автор: akaGM
Дата сообщения: 26.02.2005 20:56
EZH

1. а надо модера сюда заманить/заинтересовать...

2. sdi vs mdi
пока склоняюсь к мди и вот почему...
2-3 формы обяз. должны быть "под рукой" и _одновременно_, другие -- по желанию...
не вижу более простого (для себя) способа юзеру сделать workspace "под себя" как средствами мди, некоторые формы не совсем "неоднородны", отличаются только парой кнопок на тулбаре -- отсюда вывод делать одну, а вторую получать модификацией первой при старте...
sdi, кстати, попробовал уже набросать -- экран перенасыщен, сплиттеры/табы и тд
ужас...

FuzzyLogic


Цитата:
Я бы пожалуй попытался найти подобные программы в той же или околоживущих научных областях.

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


Цитата:
Желательно серьезные разработки пользующиеся популярностью. По опыту скажу, что пользователи очень любят "интерфейс такой же как в ..." , где "..." то чем они уже пользуются.

в моем случае -- это программы Origin, Maple и Mathematica...
вот и хочу потягаться...


Цитата:
...рынок...

это некоммерческое...


Цитата:
спросить пользователей чем пользуются, что нравится...

гы
мои пользователи пользуются моими программами!
консольными...
чем пользуются -- те же Origin, Mathematica, Word и ТеХ (с редактированием в оболочке Борланд паскаля), пересадил всех на Мозиллу и ТундерБерд -- все как обычно...
по правде говоря, что я им сделаю, тем и будут пользоваться...
но хочется, понятное дело, сделать хорошо, плохо оно само получится...
Поэтому хочется определится с самого начала, а то потом и не переделаешь...

на интерфейс я подписался после того, как меня _заставили_ сделать страницу нашей конторы...
нашли дизайнера...
Автор: EZH
Дата сообщения: 26.02.2005 21:14
akaGM
Кстати PageControl с закладками (внизу/сверху или слева) во всю форму приложения (за исключением меню и главного тулбара) очень даже неплохое решение вместо MDI для не слишком большого приложения, главное не лепить всю логику программы во всякие OnClick этой формы. Т.е. выносить её в отдельные модули (что правильно - разделение дизайна и логики!), а в OnClick-подобных событиях только управлять интерфейсом и вызовом функций логики.
Автор: akaGM
Дата сообщения: 26.02.2005 21:25
EZH

Цитата:
2-3 формы обяз. должны быть "под рукой" и _одновременно_

это я себя процитировал...
ты меня не очень внимательно прочитал -- я же выделил ключевое слово...

вот смотри как я рассуждаю, почему не катят pages:

на экране должны быть две формы -- придется им сидеть на одной закладке
если в данный момент ведется работа на одной из них, а из второй нужна только одна строка из stringsGrid'a -- сплиттер? явное переусложнение...

а если первую захочется max, а вторую вообще закрыть или схлопнуть...

для мди все это не проблема...

так что пока не переубедил...
Автор: Dimonka
Дата сообщения: 26.02.2005 21:25
akaGM
Занимаюсь написанием моделей для медицинской области. Интерфейс строится из на основе PageControl'а, ListView (в котором изображаются симуляции) и фреймов (которые кладут на TabSheet). Фреймы нужны для того, чтобы разгрузить код главной формы. На PageControl'е и располагаются страницы ввода и страницы результатов. Вся логика вынесена в классы.
По такому принципу построены практически все наши модели, естественно новые версии получаются ещё более "крутые" чем предыдущие
Автор: akaGM
Дата сообщения: 26.02.2005 21:34
Dimonka
спасибо за подключение...

к сожалению, о некоторых вещах, о кот. здесь будет (я надеюсь) говорится, я понятия не имею. TFrame я вообще не знаю... Но посмотрю обязательно, спасибо...
может дашь ссылку, демо, скриншот?

All
что если в шапке сделать что-то наподобие галереи для иллюстрации своих мыслей?
удачные и наоборот варианты дизайна с объяснением...
это могут быть ссылки, скрины...

кстати, насколько я знаю, шапку любого поста могут править посетители не ниже Member'a

вопрос модератору: это так?
а если нет, то нельзя ли сделать так, чтобы _любой_ посетитель мог редактировать верхний пост?
Автор: EZH
Дата сообщения: 26.02.2005 21:43
akaGM
Я не советовал это решение конкретно для твоей задачи, а лишь высказал свой удачный опыт нескольких разработок таким способом. И, как сказал Dimonka, тоже во всю пользую фреймы для множества однородных данных на TabSheet. Это так, в порядке обсуждения общих идей построения интерфейса приложения.


Цитата:
если в данный момент ведется работа на одной из них, а из второй нужна только одна строка из stringsGrid'a -- сплиттер? явное переусложнение...

Просто объясни кардинальное отличие тут от MDI. Я так понимаю что при MDI ты всё равно будешь мышой подстраивать размеры форм, чтобы всё было видно одновременно и как надо. И потом, размеры форм (панелей/фреймов на форме/TabSheet) ведь можно с успехом менять и программно подстраиваясь так, чтобы была видна нужная часть, например при переходе фокуса ввода. Я конечно немного теоретизирую, но это лишь потому что мы не можем знать всю специфику твоего интерфейса, но это тоже реально.

Т.к. ты хорошо знаешь специфику навигации по проектируемому приложению, то никто не собирается тебя переубеждать на SDI. Да и не говорится что SDI лучше.

Добавлено:
Верхний пост могут редактировать действительно только Member'ы
Автор: akaGM
Дата сообщения: 26.02.2005 22:00
EZH


Цитата:
Просто объясни кардинальное отличие тут от MDI.

проще... для меня делать...
есть две формы и все... их крутит-вертит винды и пользователь...
если взять за основу твое предложение, то для меня тут добавляется еще один (по крайней мере один) элемент управления -- сплиттер...


Цитата:
Я так понимаю что при MDI ты всё равно будешь мышой подстраивать размеры форм

нет!
не я, а пользователь...


Цитата:
мы не можем знать всю специфику твоего интерфейса

его еще нет! мы его тут делаем гы...
только в качестве _текстовых_ набросков и пожеланий пользователей...
я бы обязательно показал...


Цитата:
никто не собирается тебя переубеждать на SDI

с моей стороны это образное выражение...
если я пойму, что в чем-то (простоте, удобстве) я выигрываю, то я обязательно "переубедюсь"
Автор: EZH
Дата сообщения: 26.02.2005 22:17

Цитата:
проще... для меня делать...
есть две формы и все... их крутит-вертит винды и пользователь...
если взять за основу твое предложение, то для меня тут добавляется еще один (по крайней мере один) элемент управления -- сплиттер...

А мне, например, иногда жалко когда при использовании MDI-интерфейса не во весь экран, а при совмещении (стыковке) MDI-форм теряется и без того малое экранное пространство на бордеры и заголовки форм. Кстати как решение можно отписать склейку форм, тогда сплиттеры у тебя считай сами появятся
Автор: akaGM
Дата сообщения: 26.02.2005 22:32
согласен про потерю пространства...
на это брызги при 1154 и 1280...

кстати, вот еще плюс мди для меня:
у форм автоматически появляется v-h скролл при надобности, а в сингле хоть и минимально, но мне придется за ним следить самому -- спецсвойствами, отдельным контролом или как там это делается...
Автор: EZH
Дата сообщения: 26.02.2005 22:46

Цитата:
на это брызги при 1154 и 1280...

Может быть это и брызги, но это ещё и лишняя детализация видимого интерфейса рамками, надписями и т.п. => большее рассеивание внимания.

За скроллами вообще-то никогда особо не приходится следить, они во многих компонентах автоматически неплохо отрабатываются. Если сделаешь фреймы, как я говорил, то они там тоже автоматически будут как a обычной форме. Можно ещё и стандартный ScrollBox кинуть alClient на любой контейнер и ваять всё в нём.

P.S. Я специально стараюсь выступать в качестве оппонента, дабы строились взаимовыгодные рассуждения
Автор: akaGM
Дата сообщения: 26.02.2005 22:58
EZH


Цитата:
Можно ещё и стандартный ScrollBox кинуть

во! я же говорю -- дополнительный контрол... зачем он?
мой набросок SDI вобще кошмар -- панель на панели и панелью погоняет...


Цитата:
Я специально стараюсь выступать в качестве оппонента

я понимаю...
только что меня оппонировать, если я скорее спрашивающая сторона, а не предлагающая, т.к. гуи знаю очень плохо...
те же фреймы, например...
Автор: EZH
Дата сообщения: 26.02.2005 23:17

Цитата:
мой набросок SDI вобще кошмар -- панель на панели и панелью погоняет...

Кстати без этого не обойтись, если хочешь добиться хорошего изменения размера форм и чтобы контролы не "съезжали" и не наезжали друг на друга. Я имею ввиду раскидывание контролов по панелям и алигн панелей к разным сторонам. На анчоры уже давно перестал полагаться, т.к. эта вешь частенько поглюкивает.

Я сам противник использования лишнего, но по поводу таких контейнеров как панели и ScrollBox - поверь - не стоит особенно заморачиваться и лучше ими пользоваться. Спасут от многих проблем с изменением размеров, масштабирования, съезжанием от изменения размера системных шрифтов и т.п.... Да и сплиттеры при таком выравнивании контейнеров тоже стоит применять без особых переживаний. Всё это очень простые вещи, не стоит особо из-за них заморачиваться.
Автор: dneprcomp
Дата сообщения: 27.02.2005 00:22

Цитата:
какую библиотеку под такой вот компилятор мне лучше использовать

По возможности, использовать стандартные компоненты/контролы. Всяческие красоты и навароты прекрасно выглядят в первой версии и приносят радость програмисту своей крутизной(из личного опыта ). По мере развития программы; с переходом на новый виндоус, на новую среду разработки; с изменение статуса программы на коммерческий все эти штучки начинают приносить реальную головную боль и значительные потери времени на переделки и замены.

Цитата:
пользователи очень любят "интерфейс такой же как в ..." , где "..." то чем они уже пользуются

Практически все пользователи работают в виндоусе. Поэтому желательно стандартные действия программы обозначать стандартным же вин интерфейсом.
Крики о пoганости вин интерфейса отметаю даже не рассматривая, т.к. он(вин интерфейс) стандарт де-факто, а ваш никто в глаза не видел и не горит желанием переучиваться.
Нестандартные куски, так сказать, для внутреннего употребления, могут естественно отличаться от общепринятых. Но и в этом случае неплохо создать своего рода внутренний стандарт GUI и стараться его поддерживать
Автор: oSLikus
Дата сообщения: 27.02.2005 01:40
Есть программы, с отличным от стандартного интерфейса, которыми очень удобно пользоваться, и мне лично сложно представить, как можно было бы иначе сделать. Например Reget. Другой пример отличного (в смысле отличного от других) дизайна - WebMoney Keeper - очень хороший пример нестандартного, но при этом _очень_ удобного интерфейса.

Для любой программы нужно продумывать, что будет делать пользовать, какие модули программы будут зависимы (не функционально, а эргономически. Пример уже был озвучен - в одном окошке форма, в другом Grid). Исходя из этого нужно уже решать, нужен ли MDI или SDI.

Ещё один пример: Visual Studio 6 и Visual Studio .NET. Привычка, конечно, одно дело, но. Я сразу пересел на интерфейс по умолчанию в .NET Studio(SDI), т.к. для конкретной задачи (кодирование и т.п.) этот интерфейс гораздо удобнее, гораздо информативнее. Ненужные элементы делаем выплывающими. В итоге получается оптимальный размер рабочего места (а именно Editor'а).

В том же самом Ворде делать нужно по-другому (как и делается) - открываются новые окна. Это удобнее, это эргономичнее.

Далее... ICQ. Ну вот не нужен тут _стандартный_ дизайн, не нужны стандартные кнопочки-скроллы. Тут свои решения своих проблем. Та же самая ситуация со всяческими WinAMP'ами, Media Player'ами и т.п.

P.S. К чему я веду? К тому, что разработчик интерфейса должен представить себя в шкуре обычного пользователя, представить то, что будет делать этот пользователь и КАК он это будет делать. Продумать интерфейс только для мышки и только для клавиатуры. Подумать, будет ли пользователь работать с maximized окном и т.п. Тогда решение придёт к вам И ещё - нужно смотреть на другие программы. Не обязательно даже копировать интерфейс, просто нужно знать визуально, что можно натворить в дизайне. И комбинировать различные элементы для достижения лучшего эффекта
Автор: dneprcomp
Дата сообщения: 27.02.2005 03:11

Цитата:
Есть программы, с отличным от стандартного интерфейса

Да, есть. И если для многих такой интерфейс удобен, то он становиться стандартом. А вот станет или нет, заранее не скажешь.
Автор: oSLikus
Дата сообщения: 27.02.2005 04:33
Если не пробовать, то будет социализм-равенство-братство
Автор: vndovr
Дата сообщения: 27.02.2005 09:31
Если у кого-либо есть ссылки по данной тематике - постите их сюда. Из русскоязычных я в свое время видел кое-что взял с:
http://usability.ru/
Автор: akaGM
Дата сообщения: 27.02.2005 15:08
vndovr
правильно...
только, если ты читал весь этот трейд, то мог понять, что все со статусом member'a могут это делать сами в топовом письме...
сейчас я сделаю это один раз, дальше сами... только уговор -- делать это просто и понятно, без превращения шапки в павлина...

EZH
а вот в моей версии mdi в дочерних формах нет ни одной дополнительной панели-подложки!
верху toolbar
справа таскбар
внизу statusbar
и alClient'ом Сhart

может подойти с другого конца?
ты не "хвалишь" sdi, а "опускаешь" mdi, а я смотрю -- влияет ли это на реализацию моей функциональности...

dneprcomp

Цитата:
Цитата:
какую библиотеку под такой вот компилятор мне лучше использовать

в качестве заметки: надеюсь, ты понял, что это вопрос к обсуждению, а не мой личный?


Цитата:
По возможности, использовать стандартные компоненты/контролы.

сам я с этим согласен...
но хочу прояснить в каких случаях он может возникнуть (и возникает)...
человек пишет на фортране, пусть это будет кросс-платформа...
встает вопрос об интерфейсе, что использовать?
если говорить о виндах, то минимальные средства для построения gui имеются в Лахее и бывшем Compaq... В других же случаях придется искать сторонние библиотеки как кросс (qt, gtk), так и платформенно-зависимые...
я лично выбрал Дельфи, потому что под Линакс есть Куликс, а дальше разберемся...


oSLikus

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

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

в моем случае (как исключение) мне проще -- я и есть один из пользователей своей программы... гы
Автор: xxxxsoft
Дата сообщения: 28.05.2005 11:58
dneprcomp
Одобряю....
Автор: vndovr
Дата сообщения: 29.05.2005 02:14
Еще несколько ссылок по теме

http://www.info-system.ru
Раздел "Интерфейс" представляет информацию по проектированию и разработке пользовательского интерфейса к программным продуктам.

http://www.uibook1.ru/
Книга по проектированию интерфейса приложений (pdf)
Автор: Rasa
Дата сообщения: 29.05.2005 03:32
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwue/html/ch14a.asp

На MSDN по теме топика.

И http://msdn.microsoft.com/library/en-us/dnwue/html/ch14e.asp - точные (в пикселах, размеры кнопок и прочих контролов для визуального проектирования)
Автор: akaGM
Дата сообщения: 05.08.2006 13:51
решил поднять тему, т.к. у самого возник вопрос, близкий заявленному:

Цитата:
какую библиотеку под такой вот компилятор мне лучше использовать?

Итак...

дано
------
-платформа: Win32 и *nix
-компилятор: intel FORTRAN (WIN&Linux) (текущая версия 9.1)
-разрабатываемая программа -- научная, много счёта, на которое в большой степени влияет пользователь, ну и т.д. и т.п.
-текущее состояние: консоль

требуется
------------
-построить гуи (гы) + 2D sci-графика
-библиотека желательна свободная и в исходниках


пока есть намётки использовать коммерческие winteracter (http://www.winteracter.com) или gino (http://www.gino-graphics.com/)
Но.
Дорого. + Разработчики не отвечают уже больше месяца на запрос о получении триала.
Их что, этими запросами завалили? Я ведь даже не как частное лицо этот запрос оформил. Странно...

Итак, что посоветуете, уважаемые коллеги, в свете вышеперечисленных требований?

Заранее спасибо всем проявившим внимание...

---
все ссылки, кот. встретил на этих страницах перенёс в топ-пост...


позднее добавление:
попытаюсь упростить вопрос...

какая библиотека для построения ГУИ (+2D графика) наиболее соответствует след. требованиям:
-кросс-платформа (Вин & *nix)
-свободная

Qt, gtk, SDL?
Автор: TheChampion
Дата сообщения: 06.08.2006 00:09
akaGM
Qt. Гораздо мощнее остальных.
Автор: akaGM
Дата сообщения: 06.08.2006 13:57
что-то ни фига она фортран не любит...
это значит, что всё равно весь интерфейс самому прописывать... не хочу...
пошёл на интеловский форум спрашивать...

Добавлено:
----------------------
по-моему, определился...
надо искать gino

а ещё лучше -- winteracter
Автор: XPEHOMETP
Дата сообщения: 06.08.2006 21:38
akaGM

Цитата:
Разработчики не отвечают уже больше месяца на запрос о получении триала.

Я думаю, нету особого спроса на эту продукцию; ушли в отпуск, на ответы временно забили.

Научная 2D-графика под Фортран: DISLIN, PGPLOT, PLPLOT, PSPLOT, GGG graphic library, есть спецверсия GNUPLOT под Фортран. Хватит? Некоторые реально кроссплатформенные.

С гуями сложно (в смысле GUI). Если под Windows, можно попробовать Salford FTN95 - версия для персонального некоммерческого использования бесплатна и качается из интернета. Там есть библиотека ClearWin+, которая позволяет легко делать простейшие гуёвины (со сложными уже можно гарантировать заморочки). Под пингвина - не знаю.
Автор: akaGM
Дата сообщения: 06.08.2006 21:43
не, не научная, а именно гуи типа этого долбанного лахейского винтерактера...
диалоги, меню, тебю...
Автор: XPEHOMETP
Дата сообщения: 07.08.2006 19:55
Берется книжка: В.В. Васильченко, "Программирование Windows-приложений на языке FORTRAN. Элементы управления и графика Windows." Я тут в Питере в Доме Книги купил за 190 руб., в интернете (на сайте издательства - "Диалог - МИФИ") продают за 170 с доставкой. И по этой книжке шпарятся все эти диалоги и менюхи. Одна проблема: книжка написана под Compaq VF версии порядка 6.1, а там вещи типа STDCALL при вызове DLL обозначаются через директивы компилятора, а не средствами фортрана. Короче, не вполне портируемо, но легко исправить.

Второе. Есть бесплатная штука - гуёвая библиотека Xeffort. Годится для Compaq VF 6.6 и Интела 8 и выше. Встраивается в M$ Visual Studio и позволяет в нем создавать новый тип прог - Xeffort Application (без Visual Studio придется все подключать вручную). Непортируемость доведена до безобразия. Но бесплатно.

Страницы: 123

Предыдущая тема: Дизайн программы на чем делать?


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.