Каков наилучший способ реализовать GUI без конструктора GUI? - PullRequest
1 голос
/ 23 декабря 2009

если кто-то не хочет использовать IDE (только редактор, компилятор и отладчик), как лучше всего реализовать GUI вручную?

Я думаю о WinAPI-приложении на простом C или C ++.

Ответы [ 13 ]

7 голосов
/ 23 декабря 2009

Если все, что у вас есть, это Windows API, вы будете использовать свой текстовый редактор для создания виджетов пользовательского интерфейса в коде. Там нет XAML или другого промежуточного языка или разметки. Если вы хотите сделать макет, вы бы использовали карандаш и бумагу или графический инструмент, такой как Visio, для макета пользовательского интерфейса, чтобы вы могли вычислить, где вы хотите, чтобы все было.

Или же вы можете просто вставить ржавую отвертку между маленьким пальцем ноги и маленьким ногтем на ноге. Это может быть менее болезненным.

РЕДАКТИРОВАТЬ : Другие авторы говорили об использовании других фреймворков, таких как Qt или об использовании панелей макетов и тому подобного. Но вопрос задан по поводу Windows API и C / C ++. Это возвращает нас к Петцольду . Не дерьмо , которое он недавно написал , а материал "Программирование Windows". Великолепно в свое время, и это было в значительной степени так, как все было сделано 15 лет назад, но я бы никогда не вернулся без очень, очень веской причины!

5 голосов
/ 23 декабря 2009

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

2 голосов
/ 23 декабря 2009

Большинство ответов просто неверны ИМХО. Вы не дадите точные координаты без графического редактора с помощью карандаша и бумаги, это было бы слишком плохо.

Я использовал для создания форм вручную, но я использовал wxWidgets и sizer , довольно просто создавать формы руками, просто добавив sizer и элемент управления.

Также есть различные нотации для этого в wxWidgets By Jorg http://www.xs4all.nl/~jorgb/wb,, где вы просто указываете макет формы в одну строку, и он генерирует код. Я не могу найти ссылку.

1 голос
/ 23 декабря 2009

Я рекомендую Gtk +. TkInter также можно использовать.

0 голосов
/ 25 декабря 2009

Я думаю, что лучший способ создать графический интерфейс - это использовать язык разметки, такой как Mozilla XUL. Однако Mozilla реализовала XUL для использования с движком Gecko, а не для собственных приложений Windows. Вот почему я создаю свою собственную реализацию поверх Windows, если вам интересно, вы можете проверить это: XULWin .

0 голосов
/ 23 декабря 2009

Используйте Visio или другой программируемый инструмент для создания диаграмм.

Напишите экспортер, который преобразует ваш рисунок в код C для вашей библиотеки. Win32, если это ваш вкус.

Один день работы над этим экспортером сэкономит вам часы "compile-run-checkifitswhereiwantittobe".

0 голосов
/ 23 декабря 2009

Вам нужно будет изучить API для вашей конкретной оконной системы. Под MS Windows это будет Windows API, если вы спускаетесь как можно ниже или, возможно, используете MFC в C ++. В любом случае это процесс попробовать и исправить это и попробовать еще раз и исправить это еще немного, и т.д., до тошноты. Я должен был сделать это несколько лет назад под X / Windows, и это было медленно и мучительно. Возможно, вы захотите попробовать один раз, чтобы доказать, что вы можете это сделать, но по моему опыту это не продуктивно и не необходимо.

0 голосов
/ 23 декабря 2009

Это тяжелая работа, поэтому я рекомендую использовать текстовый редактор, который поддерживает макросы подстановки текста, и создать собственный «синтаксис» для обработки повторяющихся задач. Некоторые хорошие текстовые редакторы позволяют вам определять свой собственный "intellisense" и уже имеют встроенный IntelliSense Win32 API.

0 голосов
/ 23 декабря 2009

Опыт разработки графического интерфейса сильно отличается в зависимости от графического инструментария, который вы используете. В Windows наиболее типичным (и я думаю, что низким уровнем) является MFC API, но это не единственная возможность, поскольку вы также можете использовать более высокий подход с такими инструментами, как GTK + или Tk. Конечно, вам нужно установить библиотеки в Windows.

Например, в GTK + вы можете использовать XML-файлы для описания большей части GUI, что может быть проще, чем сделать их жестко запрограммированными. Также вы можете создать объект VBox и добавить к нему другие объекты, и автоматически объекты будут расположены на один уровень ниже предыдущего, вместо того, чтобы измерять и описывать его положение XY.

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

Я рекомендую вам хотя бы взглянуть на GTK + (http://www.gtk.org/). Вы можете использовать его из C ++ (также других языков, таких как Python и C #), и его не очень сложно использовать без визуального редактора. Он имеет визуальные редакторы Кроме того, если вы передумаете.

0 голосов
/ 23 декабря 2009

Запечатлеть это на бумаге или где угодно.

Будьте точны на полях, ширине, выравнивании влево ...

Как только вы получите точное представление о положении каждого элемента на экране, вам просто нужно его перевести.

Это что-то вроде наказания?

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