Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.82/120: Рейтинг темы: голосов - 120, средняя оценка - 4.82
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755

Как для программы на Си сделать Gui?

29.09.2019, 22:09. Показов 26300. Ответов 70
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Прошу подсказать, можно ли на Си делать окошки и кнопки и если да, то какими командами или где об этом почитать? Если нельзя, то как связать код с другим языком программирования, где это можно делать?

Добавлено через 15 минут
Раз Gimp написан на Си, значит и окна, кнопки можно программировать, только как?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.09.2019, 22:09
Ответы с готовыми решениями:

Есть ява приложение с GUI. нужна фукнция для программы. как сделать ?
Есть прикладная задача - управление приточно-вытяжной установкой по уровню CO2 (замеряемому настольным датчиком) с помощью ИК сигналов ...

Сделать GUI (вывод текста) для готовой программы
Всем добрый день, у меня такой вопрос - как можно сделать GUI (скорее всего на PyQt4) для уже написанной, работающей программы? Суть в...

GUI для программы
Во время добавления 2 кнопки, появляеться проблема, она добавляет ещё одну кнопку вместе с собой. Т.е. если добавляеться 2-я кнопка то с...

70
 Аватар для COKPOWEHEU
4087 / 2685 / 432
Регистрация: 09.09.2017
Сообщений: 11,941
08.10.2019, 16:45
Студворк — интернет-сервис помощи студентам
winapi это тоже не gui, это управление отдельными окнами, причем довольно неудобное.
Цитата Сообщение от supmener Посмотреть сообщение
Можете ли прокомментировать CSFML?
Насколько я слышал, SFML похожа по структуре и назначению на SDL, с которой я имел дело. Так что про SDL прокомментировать могу. Это действительно не полноценная GUI библиотека со всеми этими кнопочками, формочками и т.п. Она предназначена для создания окна и взаимодействия с операционной системой: отлавливать оконные события (в winapi пришлось бы делать то же самое, но длиннее) вроде нажатий на кнопки, перемещения мыши, изменения размера окна и тому подобного. Плюс загрузка изображений, работа со звуком, сетью, буфером обмена и всем остальным, что понадобится для написания программ, ориентированных на графику. Не на "стандартное" GUI, а именно графику, как в играх.
1
9949 / 2949 / 497
Регистрация: 05.10.2013
Сообщений: 8,024
Записей в блоге: 242
09.10.2019, 16:41
Цитата Сообщение от supmener Посмотреть сообщение
Можете ли прокомментировать CSFML?
CSFML это порт для Си-программистов библиотеки SFML. А SFML написана в ООП стиле на C++ и для C++ программистов, можно наследоваться от классов SFML. Из Си вы не сможете использовать SFML, поэтому сделали порт на Си: CSFML Есть порты SFML на другие языки. Я кроме CSFML пробовал порты: на C# (SFML.NET) и на Python (PySFML).

CSFML и SDL2 - это две альтернативы для Си-программиста. В принципе, вы можете сделать кнопки, вывести текст, изображения. Но сделать Edit, то есть поле ввода будет посложнее, чем кнопку. Я для графических программ использую шейдерный OpenGL. Я учусь, как делать своё GUI. Пока что я научиться, загружать шрифты и выводить картинки. Даже пока кнопку не делал, тем более поле ввода тоже пока не делал. Мне нужно будет сделать на OpenGL: ползунок, выпадающий список, галочки ставить, переключатель и т.д.

Цитата Сообщение от supmener Посмотреть сообщение
Раз Gimp написан на Си, значит и окна, кнопки можно программировать, только как?
Я тоже осваиваю GIMP. Удобная программа для текстурирования 3D моделей и редактирования 2D графики. Если вы вдруг не знали, то GIMP позволяет писать плагины, то есть маленькие программы на Python способные автоматизировать рутинную работу. Такая программка может добавить свои GUI элементы на GIMP. Подробнее, как начать, здесь: Как написать дополнение для GIMP на языке Python / Хабр
1
 Аватар для COKPOWEHEU
4087 / 2685 / 432
Регистрация: 09.09.2017
Сообщений: 11,941
09.10.2019, 21:26
Цитата Сообщение от 8Observer8 Посмотреть сообщение
В принципе, вы можете сделать кнопки, вывести текст, изображения. Но сделать Edit, то есть поле ввода будет посложнее, чем кнопку. Я для графических программ использую шейдерный OpenGL. Я учусь, как делать своё GUI. Пока что я научиться, загружать шрифты и выводить картинки. Даже пока кнопку не делал, тем более поле ввода тоже пока не делал. Мне нужно будет сделать на OpenGL: ползунок, выпадающий список, галочки ставить, переключатель и т.д.
Угу, делал нечто подобное, на SDL2 + OpenGL1. Дошел до кнопок, ползукнов, поля ввода и окошка лога. Правда, багов там оказалось изрядно, ну так на то и велосипед чтобы собирать грабли.
Но одно ясно: самописное GUI - задача непростая.
1
9949 / 2949 / 497
Регистрация: 05.10.2013
Сообщений: 8,024
Записей в блоге: 242
10.10.2019, 00:04
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Дошел до кнопок, ползукнов, поля ввода и окошка лога. Правда, багов там оказалось изрядно, ну так на то и велосипед чтобы собирать грабли.
Но одно ясно: самописное GUI - задача непростая.
Да, непростая, но для меня - очень интересная, а в моё в моём случае - это не велосипед, а единственная возможность решать определённый круг задач. Надо больше работать с эффектами на шейдерах, то есть практиковаться и упражняться. Есть в планах реализовать GUI в небольших своих 2D/3D игрушках и в интерактивных 3D приложениях на шейдерах для вывода GUI внутри 3D сцены - подписывать механизмы, выводить показания приборов по наведению мыши, показывать размеры деталей и т.д. В одних случаях это необходимость, а в других можно использовать WinForms, WPF, веб-приложение или даже Unity в конце концов для сочетания стандартного GUI и 3D графики в одном окне. От задачи зависит: на чём проще для данной задачи и на чём больше предложений от заказчиков на данное время на Upwork. По задумке для кнопки достаточно три текстуры: просто кнопка, мышка наведена на кнопку, нажатие кнопки. На попадании координат мыши в область кнопки текстура меняется. Для игрушки можно использовать, чтобы вывести кнопку в середину экрана. Может TC не будет тренироваться программировать на играх и OpenGL, но может ему интересно, что разные люди выбирают для GUI в определённых случаях.
1
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
29.11.2019, 09:37  [ТС]
Как понял, инструкции по работе в GTK и Glade содержатся в платном видео курсе Шереметьева "Азбука программирования на языке Си" (2017). Хотя курс дорогой, не советую Вам скачивать его с форумов складчин и файлообменников, так как автору нужны денюжки с его продажи.
0
 Аватар для COKPOWEHEU
4087 / 2685 / 432
Регистрация: 09.09.2017
Сообщений: 11,941
29.11.2019, 10:12
Программированию по видокурсам не научишься.
Берется книжка, читается, примеры и задачи выполняются. Хорошо если поблизости есть человек, которого можно спросить, но такое бывает нечасто
2
9949 / 2949 / 497
Регистрация: 05.10.2013
Сообщений: 8,024
Записей в блоге: 242
29.11.2019, 14:52
supmener, из русского обратите внимание на курсы от ITVDN. Они тоже платные. Особенно мне нравятся курсы Александра Шевчука по паттернам проектирования и ООП. Правда, на C#, но принципы у паттернов и ООП общие на всех языках. Тем более, что он использует книгу Банды Четырёх, как основу. По алгоритмам у них хорошие курсы, но тоже на C#. Они сертифицированные тренеры с сертификатами от Microsoft. Но не все сертифицированные. Лучше доверять тем у кого есть сертификаты такого высокого уровня.

Среди англоязычных курсов значительно больший процент полезных. Я смотрю только на английском (кроме нескольких от ITVDN), чтобы тренировать за одно другие грани понимания. На русском на Youtube я только пару авторов выделил для себя. Это FamTrinli и Anton Te

Например, знаменитый урок FamTrinli на SFML: Создание игр на C++: Марио (платформер)

Youtube


Вообще, конечно, самое главное - это регулярная практика. Очень много практики. Причём, практика от которой вы учитесь получать радость. Без радости от практики не будет мотивации и не будет развития. Знания можно черпать из максимального количества источников, но самое главное, это делать эти знания частью себя за счёт тяжёлой и монотонной работы через многократное повторение на практике. Вам может казаться, что вы узнали что-то, но как только дело дойдёт до отработки знаний на практике, вы узнаете, что на самом деле стало частью вас, а что нет. Пишите, что вам нравится и любите то что вы делаете - это та мотивация, которая вас проведёт через практику к реальным знаниям, а результатом будут знания доведённые до навыков.
1
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
22.12.2019, 21:25  [ТС]
Какую последнюю версию Windows поддерживает VISG? Какие есть тонкости при создании в нем GUI?
https://www.softpedia.com/get/... VISG.shtml (v9.51)
http://www.progresor.radom.pl/... rc0952.zip (здесь похоже, что кроме программы исходники).
0
 Аватар для zeroalef
200 / 236 / 33
Регистрация: 29.03.2019
Сообщений: 667
23.12.2019, 17:36
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Насколько я слышал, SFML похожа по структуре и назначению на SDL, с которой я имел дело. Так что про SDL прокомментировать могу.
Кликните здесь для просмотра всего текста
эпиграф:
Студент сдает зоологию. Знает только про блох. На экзамене
достается вопрос про собак. Судент начинает:
- Собаки это млекопитающие, покрыты шерстью. В шерсти водятся блохи...
дальше все про блох....
Препод:
- Ладно молодой человек, расскажите про кошек Студент:
- Кошки это млекопитающие, покрыты шерстью. В шерсти водятся блохи...
дальше все про блох....
Препод:
- Давайте-ка про рыб Студент:
- Рыбы это не млекопитающие. Шерстью не покрыты. Покрыты чешуей, но если
бы они были покрыты шерстью, то в ней бы водились блохи....
0
 Аватар для COKPOWEHEU
4087 / 2685 / 432
Регистрация: 09.09.2017
Сообщений: 11,941
24.12.2019, 09:41
zeroalef, есть такая штука, как конвергенция, то есть решения похожих задач часто оказываются похожими хотя бы по принципу, если не по деталям реализации.
А задачи, решаемые GLUT, SDL, SFML, GLWF, одни и те же. Естественно, реализации будут отличаться: скажем, GLUT активно использует callback'и и собственный цикл обработки оконных сообщений, тогда как SDL предоставляет это пользователю. Но это не отменяет назначение библиотек: унифицировать доступ к окну операционной системы, чтобы пользователь внутри него рисовал все что захочет.
0
24.12.2019, 21:23

Не по теме:

COKPOWEHEU, не принимайте на свой счет, это просто безобидная шутка.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.12.2019, 21:23
Помогаю со студенческими работами здесь

GUI для C# программы
Доброго времени суток :) Однажды мне тут уже помог очень классный парень и замутил шикарнейшую программу... Но как оказалось еще и GUI...

Как запустить qt gui программу, как демон, без gui, скрыв gui?
Как запустить qt gui программу, как демон, без gui, скрыв gui? В gui браузер выполняет определенные действия, и нужно запустить этот...

GUI для коммерческой программы
Какую библиотеку выбрать чтобы создать гуи - окно с кнопками. Например мы хотим создать свою программу и начать ее продавать. Что...

Gui для консольной программы
Всем привет. Мне надо создать gui оболочку для готовой консольной программы, чтобы пользователь вводил в textbox'ы нажимал кнопку и...

Создание GUI для простой программы
Здравствуйте. Срочно нужна помощь. Нужно сделать гуй для программы: #include <stdio.h> #include <iostream> #include...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
71
Ответ Создать тему
Новые блоги и статьи
Debian 13: Установка Lazarus QT5
ВитГо 09.05.2026
Эта инструкция моя компиляция инструкций volvo https:/ / www. cyberforum. ru/ blogs/ 203668/ 10753. html и его же старой инструкции по установке Lazarus с gtk2. . .
Нейросеть на алгоритме "эстафета хвоста" как перспектива.
Hrethgir 06.05.2026
На десерт, когда запущу сервер. Статья тут https:/ / habr. com/ ru/ articles/ 1030914/ . Автор я сам, нейросеть только помогает в вопросах которые мне не известны - не знаю людей которые знали-бы. . .
Асинхронный приём данных из COM-порта
Argus19 01.05.2026
Асинхронный приём данных из COM-порта Купил на aliexpress термопринтер QR701. Он оказался странным. Поключил к Arduino Nano. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
попытка написать игровой сервер на C++
pyirrlicht 29.04.2026
попытка написать игровой сервер на плюсах с открытым бесконечным миром. возможно получится прикрутить интерпретатор питон для кастомизации игровой логики. что есть на текущий момент:. . .
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2. Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru