Как на самом деле разрабатываются GUI - PullRequest
4 голосов
/ 13 апреля 2011

Я работал в основном над веб-разработкой, но иногда занимался программированием на C / C ++ или Java. Мне очень любопытно, как эти структуры на самом деле производят графику, используемую в их графическом интерфейсе. Были ли элементы графического интерфейса (строка заголовка, рамка окна, строка состояния, кнопки и т. Д.) Разработаны дизайнером в Photoshop, а затем разработчик добавил эту графику в структуру? Или разработчики на самом деле создают элементы программно под руководством дизайнера?

Если бы кто-нибудь мог дать мне обзор, который был бы потрясающим!

Ответы [ 2 ]

3 голосов
/ 13 апреля 2011

Отличный вопрос, Ларк! Поскольку мы находимся в ветке Qt Framework, я расскажу вам, как это делается в Qt, но я уверен, что вы можете применять к таким же фреймворкам или библиотекам, как GTK и т. Д.

Итак, Qt запустил инфраструктуру, которая предоставит один API для различных платформ, что позволит очень легко переносить ваши приложения с одной платформы на другую, обеспечивая при этом собственный внешний вид и функциональность этой платформы. Так, например, в MacOSX кнопка будет иметь этот синий стиль Aqua, а в Windows XP она будет выглядеть как кнопка на платформе Windows. Trolltech приложил много усилий и проделал большую работу, чтобы GUI выглядел как родной. Так как это работает? Все виджеты Qt используют QStyle и его производные для визуализации. В зависимости от стиля виджет будет выглядеть по-разному. Все стандартные виджеты следуют указаниям тех платформ, для которых они предназначены. Возможно, за этим стоит небольшая работа графического дизайнера, но я считаю, что это не так уж важно. Основным источником внешнего вида являются руководства по платформам, которые описывают, как должны выглядеть элементы пользовательского интерфейса на этих платформах и их поведение.

Но Qt развивался очень быстро, и тролли получили очень многообещающую технологию под названием Qt Quick . Это удивительная технология, которая позволяет дизайнерам и разработчикам тесно сотрудничать, обеспечивая лучший пользовательский интерфейс. Он сильно ориентирован на использование в коде художественных работ, сделанных в Photoshop, GIMP или подобных инструментах. И гораздо проще использовать макеты от дизайнеров с Qt Quick, чем с C ++ / Qt, потому что Qt Quick изначально был разработан для этого.

Надеюсь, это поможет

1 голос
/ 15 апреля 2014

Базовая низкоуровневая функциональность большинства каркасов GUI довольно старая, это результат очень большой работы более ранних разработчиков, работающих с примитивами - буквальное рисование чего-либо на экранах терминалов и т. Д., На очень низких уровнях, с использованием C илиАссемблер.Постепенно появляются библиотеки для абстракции этих процессов, а также структуры и иерархии классов для их уточнения и организации.Все Linux GUI (фактически, почти все современные GUI-структуры) основаны на XWindows , например:

X, созданного в Массачусетском технологическом институте(MIT) в 1984 году. Версия протокола X11 с сентября 1987 года ... X в основном определяет протокол и графические примитивы - он намеренно не содержит спецификации для дизайна пользовательского интерфейса приложения, такого как кнопка, меню или строка заголовка окнастили.Вместо этого прикладное программное обеспечение - такое как оконные менеджеры, наборы инструментов графического интерфейса пользователя и среды рабочего стола или графические пользовательские интерфейсы конкретного приложения - определяют и предоставляют такие подробности.В результате типичный интерфейс X отсутствует, и среди пользователей стали популярными различные среды рабочего стола.

Подробнее об этой теме см. Здесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...