Отличный вопрос, Ларк! Поскольку мы находимся в ветке 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 изначально был разработан для этого.
Надеюсь, это поможет