|
0 / 0 / 0
Регистрация: 15.02.2015
Сообщений: 444
|
|
Графический интерфейс, реализация14.04.2017, 01:53. Показов 8373. Ответов 30
Метки нет (Все метки)
Сейчас просто для себя решил попробовать сделать простой, но удобный и понятный графический интерфейс для МК на С++. Низкоуровневые вещи по заполнению экрана и отрисовке графических примитивов уже есть, вопрос в организации отдельных программных частей. Вот есть базовый абстрактный класс Widget от которого наследуют такие вещи как Button, Stydir, MsgBox, Switch и так далее. В Widget хранится информация и методы касательно размеров, положения, видимости и прочее. В остальных классах реализуются уже более специфичные вещи, зависящие от состояния. Но возник вопрос, должны ли такие классы содержать и методы, непосредственно отображающие объекты на экране? Или отрисовку правильнее возложить на отдельный класс, который будет вызывать перегруженные функции в зависимости от типа объекта? Помимо графики, если планируется сенсорный ввод, то где лучше разместить его обработку, в каждом классе или выделить для этого отдельный?
0
|
|
| 14.04.2017, 01:53 | |
|
Ответы с готовыми решениями:
30
База данных "учебный план специальности". GUI. Графический интерфейс. Пользовательский интерфейс Графический интерфейс Графический интерфейс |
|
0 / 0 / 0
Регистрация: 30.04.2015
Сообщений: 721
|
|
| 14.04.2017, 10:55 | |
|
Задача: сделать простой, но удобный и понятный
и тут же начинаются неудобности и непонятки у многих "МК" очень мало памяти у "МК" нет встроенного дисплея у некоторых "МК" есть интерфейсы для подключения дисплеев
0
|
|
|
0 / 0 / 0
Регистрация: 15.02.2015
Сообщений: 444
|
|
| 14.04.2017, 23:28 | |
|
Ну я же написал, что низкоуровневые вещи пока оставляю за скобками, меня больше интересует сам принцип организации отдельных программных модулей в составе библиотеки графического интерфейса.
0
|
|
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 322
|
||
| 14.04.2017, 23:43 | ||
Вы уже достигли такого уровня, что можете сами создавать контент, а не спрашивать у других :)
0
|
||
|
0 / 0 / 0
Регистрация: 24.02.2010
Сообщений: 804
|
|
| 15.04.2017, 00:12 | |
|
Можете поглядеть, как у меня сделано: http://www.fun-itistronic.net/wp-conten ... raphic.rar
Это просто папка из моего проекта логического анализатора. Там только графическая библиотека, без драйвера дисплея, без драйвера тачскрина и т.д. и т.п. Просто как пример. Но думаю - будет понятно. Удачи Добавлю только, что оно все "росло" постепенно, так что, если бы сейчас начал я это делать с нуля, но с теми знаниями, что уже получил в процессе, то, вполне возможно, что сделал бы чуток по другому.
0
|
|
|
0 / 0 / 0
Регистрация: 25.04.2016
Сообщений: 334
|
||
| 15.04.2017, 12:14 | ||
0
|
||
|
0 / 0 / 0
Регистрация: 24.02.2010
Сообщений: 804
|
||
| 15.04.2017, 13:39 | ||
Угу. Но тогда будет жесткая завязка на конкретный драйвер конкретного дисплея/его контроллера. И смешение слоев проги (HW-HAL-Dryver-GUI Lib-App) в нечто неразделимое, если захочется применить эту библиотеку в другом проце. В данном случае линии выводятся через DMA2D. Точки пишутся напрямую в видео область. Можно еще отловить момент именно прямоугольников, но пока скорость устраивает меня, и шибко оптимизировать нет необходимости.
0
|
||
|
0 / 0 / 0
Регистрация: 25.04.2016
Сообщений: 334
|
||
| 15.04.2017, 14:05 | ||
0
|
||
|
0 / 0 / 0
Регистрация: 24.02.2010
Сообщений: 804
|
||
| 15.04.2017, 14:31 | ||
В библиотеке только вызов этих функций идет. Так что тут все нормально.
0
|
||
|
0 / 0 / 0
Регистрация: 25.04.2016
Сообщений: 334
|
||
| 15.04.2017, 14:35 | ||
0
|
||
|
0 / 0 / 0
Регистрация: 24.02.2010
Сообщений: 804
|
||
| 15.04.2017, 14:49 | ||
Буду рад его услышать, чтоб реализовать в своих поделках.
0
|
||
|
0 / 0 / 0
Регистрация: 24.02.2010
Сообщений: 804
|
|
| 15.04.2017, 14:51 | |
|
Кстати - там есть класс кнопки с картинкой. Так вот картинки у меня в основном в PNG формате. И в нем - этом PNG формате байты цвета R и B местами поненяны по сравнению с нормальным форматом. И просто так скопировать данные из файла не получится. эти цвета меняются местами, и картинка получается с искаженными цветами. Так что опять SetPyxit...
0
|
|
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 322
|
||
| 15.04.2017, 15:08 | ||
Мне кажется, что данный вариант наиболее универсальный. И даже если и тратится "много" времени при этом, человек все равно не успевает заметить, что перерисовка дисплея "медленная", т.к. она происходит быстрее межкадрового периода.
0
|
||
|
0 / 0 / 0
Регистрация: 24.12.2011
Сообщений: 2,752
|
||
| 15.04.2017, 16:55 | ||
0
|
||
|
0 / 0 / 0
Регистрация: 24.02.2010
Сообщений: 804
|
||
| 15.04.2017, 17:25 | ||
Ну не знаю, PNG это или нет, но вот библиотека, что я нашел на просторах интернета, LonePNG кажется, выдает мне картинку в таком формате, и мне ее надо нарисовать как-то на дисплее с форматом RGB8888. Как я уже говорил - скопировать средствами DMA2D с преобразованием из RGB888 (что должно быть по идее выводом из библиотеки PNG) в RGB8888 выдает такой вот эффект - смену местами R и B цветов. (Я там глядел в исходник ее, там так и написано в каментах, что выдаются пиксели в формате Big Endian. Для чего, не знаю. По моему - как то странно). А картинки в таком PNG выдает обычный виндовский Pain(t) редактор. И про какой интерфейс вы в данном случае говорите? У меня интерфейс между GUI Библиотекой и драйвером дисплея - SetPyxit и DrawLine. Для отрисовки картинок PNGшных в данный момент используется SetPyxit. В каком месте он похерился, просвятите, если не трудно?
0
|
||
|
0 / 0 / 0
Регистрация: 25.04.2016
Сообщений: 334
|
||||
| 15.04.2017, 17:37 | ||||
0
|
||||
|
0 / 0 / 0
Регистрация: 24.12.2011
Сообщений: 2,752
|
||
| 15.04.2017, 17:47 | ||
0
|
||
|
0 / 0 / 0
Регистрация: 24.02.2010
Сообщений: 804
|
||
| 15.04.2017, 17:55 | ||
Ну я не только название темы почитал, но и то, что автор темы конкретно хотел и указал это в тексте. Вот я и показал ему свой пример. И в тексте первого сообщения автор как раз и сомневается, как именно реализовать саму отрисовку. У меня это две функции, которые сделаны в отдельном классе - SetPyxit и DrawLine. Вот и интерфейс. Про картинки речь - так у меня в библиотеке есть целый класс, который называется ImageWymdow (для ТС это было бы ImageWidget), который использует SetPyxit для вывода картинки. Если только читать название и не читать текст сообщения.... очень часто бывает так, что авторы (к данному топику не относится) не совсем точно формулируют название тем, и только из текста понять можно, что они хотят на самом деле.
0
|
||
|
0 / 0 / 0
Регистрация: 24.12.2011
Сообщений: 2,752
|
||
| 15.04.2017, 18:21 | ||
0
|
||
|
0 / 0 / 0
Регистрация: 24.02.2010
Сообщений: 804
|
||
| 15.04.2017, 18:24 | ||
Мдя
0
|
||
| 15.04.2017, 18:24 | |
|
Помогаю со студенческими работами здесь
20
Графический интерфейс Графический интерфейс
Графический интерфейс Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|
Фото: Daniel Greenwood
kumehtar 13.11.2025
|