Category: it

Category was added automatically. Read all entries about "it".

face

Atari Basic

Ну что ж, вспомнил немгого детство...
Первый моя язык программирования - Atari Basic, первый комп - Atari XEGS, приставка с подключаемой клавой и джойстиком. Ещё был пистолет, но он что-то не работал у меня.
На этой чудо-машине я постигал первые азы программирования... циклы, рисование... первую игру даже на этой штуке написал. Было это классе в 6-м.

Прошли годы...

И вот теперь я вспомнил, каково это было!



Благо нашёлся эмулятор.

Жаль, что он всего 4 цвета эмулирует, а не 8, как в оригинале...
Ну да это не важно! Результат!



Эх, до боли знакомая надпись READY...

Сейчас конечно у меня нет времени писать игры на этой штуке, но кое-какие штуки всё же можно за мнуту наваять...





Ностальгия... Я ещё на этой штуке музыку когда-то пытался делать, по нотам что-то там пищало у меня, вот это было весело!

У меня не было внешнего дисковода, а потому все свои программы я аккуратно записывал в специальной тетради, дабы потом заново их набрать и запустить... Вот было время! В школе на уроках я часто сидел и писал на бумажке программы для этой штуки, поом бежал домой, набирал и запускал... И работало! Я даже приловчился джойстик для управления в своей игре использовать... Можно было играть и клавой и джойстиком... В программе той было строк 100, наверное... 100 вымученных, каждый день набираемых заново строк! Отлаживал я это дело доооолго... Был у игры один недостаток - взрывы рисовались не кружками (как положено), а квадратами, т.к. отрисовка окружностей очень долго происходила. Анимация строилась простыми циклами, никаких задержек, прерываний, таймеров... Бесконечный цикл и чтение скан-кодов с клавиатуры и состояний джойстика... Что вдруг вспомнил - вместо параболы я кусок синусоиды использовал для траектории полёта снаряда! Я просто ещё не знал, что такое парабола (зато знал, что такое синусоида... парадокс! тригонометрию я начал изучать рано).

А сейчас? Вот попробовать бы сейчас написать код сначала на бумажке... Без IDE, автокомплитера, подсветки синтаксиса и так далее... Да хотя бы строк 100! И без дебаггера отладить... а? Мдаа, староват я стал...
  • Current Music
    Hariprasad Chaurasia
face

как выдрать редактор QSS (Qt StyleSheets) из QtDesigner

в QtDesigner'е есть очень хорошая штука - редактор StyleSheet'ов. он соответственно имеет подсветку CSS. а значит, это может быть полезно.
в моём случае это не только полезно, но и нужно, так как избавляет от необходимости с нуля писать эту самую подсветку.
где взять?
качаем исходники Qt, заходим в tools/designer/src/lib/shared/ и находим там файлы stylesheeteditor.cpp и stylesheeteditor_p.h
после их изучения приходим к выводу, что нужны нам другие файлы: csshighlighter.cpp и csshighlighter_p.h
дальше что делать понятно.

с подсветкой синтаксиса всё понятно. но что же делать с валидацией? тут обратим внимание на отвергнутые в начале файлы и увидим там функцию StyleSheetEditorDialog::isStyleSheetValid, которая юзает namespace QCss, который опять таки не публичный и который надо копать...

копаем сюда: src/gui/text/ файлы qcssparser_p.h и qcssparser.cpp. это всё тянет за собой qcssscanner.cpp.

в общем, теперь можно приступать к сборке "с миру по нитке" своего редактора stylesheet'ов с валидацией и подсветкой.
а если хочется ещё и вставку и редактор градиентов........... то надо копать в сторону QtGradientViewDialog. ищите и обрящете! обращем же этот диалог в tools/shared/qtgradienteditor/
пока всё.

UPD: после детального изучения данного вопроса и долгого ковыряния в исходниках Qt, был написан тестовый проект, который включает в себя этот самый редактор QSS.
вот то, что реально вошло в проект и нужно для работы редактора без интеграции с дизайнером:

csshighlighter.*
qdesigner_utils.*
stylesheeteditor.*
[DIR] qtgradienteditor

разумеется, пришлось выбросить работу с ресурсами. кроме того, градиенты хранятся только для текущего запуска. можно сделать их сохранение, но пока не хочется...
face

Qt Balloon Tip

оказывается, в Qt есть таки QBalloonTip!
только спрятан он в src/gui/util/qsystemtrayicon_p.h и src/gui/util/qsystemtrayicon.cpp
его оттуда можно извлечь и переделать, чтобы отвязать от QSystemTrayIcon и позволить ему показываться где надо.
моя реализация как раз компилится.