Альтернатива GTK WIn7 - PullRequest
0 голосов
/ 02 июля 2019

Я начал использовать GTK (2) и обнаружил, что работа библиотеки очень хорошая, но документация отстой.

Я хочу перейти на GTK3, но, похоже, мне нужноустановить то, что называется packman.Это трудный философский шаг для меня.Почему я не могу просто скачать zip-файл (-ы) куда-нибудь?

В документации много слов, но ничего не сказано, и при загрузке требуется, чтобы вы загружали вещи ДРУГОЕ, а не gtk, чтобы получить gtk.Почему у них просто нет пакета GTK, и позвольте мне решить, нужны ли мне все остальные вещи.

Кроме того, я читал на форумах, даже если я делаю вещи с пакетом, это все еще недостаточно для C :: B.

Во всяком случае, это в основном напыщенная речь, и мне бы очень хотелось предложить альтернативу GTK +.

Вот некоторые из моих требований ...

# 1, он НЕ должен быть переводчиком.Используя Code :: Blocks и C, я получаю exe-файл, и я хотел бы продолжить этот путь.

# 2 Он должен быть программируемым с использованием C. Я действительно хотел бы придерживаться C :: B, но я думаю, что в крайнем случае я могу использовать Eclipse (хотя это еще один кошмар, в который я не буду вдаваться).

# 3 GTK требует, чтобы куча DLL была отправлена ​​вместе с exe-файлом.Было бы идеально, если бы вся цель могла быть включена в один exe-файл без необходимости полагаться на внешние библиотеки dll или .net, а также на другие внешние элементы.

Любые предложения будут предварительно согласованы.

СпасибоМарк.

1 Ответ

1 голос
/ 03 июля 2019

Лучше всего взглянуть на https://en.wikipedia.org/wiki/List_of_widget_toolkits#High-level_widget_toolkits

Если вы хотите придерживаться C, а не C ++, то Qt отсутствует. Другой, который выделяется - EFL . Я никогда не использовал его сам, но у него хорошая репутация и, вероятно, ваш лучший выбор, если вы хотите выйти из GTK + и придерживаться C. Однако я не знаю, насколько легко использовать его в Windows.


Теперь о GTK +:

Кроме того, я читал на форумах, даже если я делаю вещи с пакманами, этого все равно недостаточно для C :: B.

Здесь есть люди, которые используют GTK + с Code :: Blocks, поэтому я не понимаю, о какой проблеме вы говорите.

Тогда другие ваши проблемы:

Документация использует много слов, не говоря много

Примеры

Загрузки хотят, чтобы вы загрузили материал ДРУГОЙ, затем gtk, чтобы получить gtk

Чего вы не получите, так это того, что GTK + - это больше, чем просто библиотека libgtk. Он зависит от многих других библиотек, таких как glib, cairo, pango и т. Д. В прошлом был пакет или установщик, который устанавливал их в Windows, но люди не могли настроить среду на основе своих нужно и сдаваться. Поскольку рабочая сила GTK + для платформы Windows ограничена, команда GTK + делегировала распределение двоичных файлов GTK + проекту MSYS2.

MSYS2 - это популярный проект, который предоставляет множество программного обеспечения с открытым исходным кодом, уже созданного для Windows, и решает проблему построения и установки зависимостей вручную для пользователя. Этот шаг сделан, чтобы сделать установку проще, а не сложнее. В нескольких командах у вас есть GTK + и все его зависимости, установленные для вашей платформы, и вы можете начать кодировать ваше приложение. Другая команда, и у вас установлены python и привязки python GTK +, и вы можете начать работу. Хотите зависеть от другой популярной библиотеки? Скорее всего, MSYS уже предоставляет его.

Известно, что Windows десятилетиями плохо справлялась с управлением зависимостями. Если бы управление пакетами не было проблемой в Windows, то такие вещи, как chocolatey или conan , не существовали бы.

Ваше философское нежелание просто философское. Конечно, GTK + в Windows не идеален. С MSYS2 вы получите пакеты, собранные с помощью gcc, поэтому символы отладки несовместимы с отладчиком Visual Studio, и вам придется использовать вместо них gdb. Но по другому вопросу вы говорите, что используете gcc и ненавидите Visual Studio, так что это не должно быть для вас блокирующим.

GTK требует, чтобы куча DLL была отправлена ​​вместе с exe-файлом. Было бы идеально, если бы вся цель могла быть включена в один exe-файл без необходимости полагаться на внешние библиотеки dll или .net, а также на другие внешние элементы.

На данный момент это невозможно, так как статическая компиляция GTK + не поддерживается. Однако перераспределение приложения не так просто, как хотелось бы. Лучший способ перераспределить ваше приложение в Windows при использовании MSYS2 - это создать пакет pacman для вашего приложения, перечислив его зависимости, а затем вызвать pacman, чтобы установить ваше приложение в пустой каталог, и попросить его также установить все ваши зависимости. Результатом будет каталог, который вы можете распространять, с автономной установкой вашего приложения и всех его зависимостей, включая GTK +.

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