beamui icon indicating copy to clipboard operation
beamui copied to clipboard

Как отлаживать графические приложения?

Open bubnenkoff opened this issue 6 years ago • 10 comments

До этого никогда графические приложения не писал. Я понимаю, что atoll сейчас еще альфа версия, но тем не менее хотелось бы узнать как предполагается это делать? Просто попробовал через writeln в консоль выводить -- не выводит туда ничего. А как иначе найти причину падения я не знаю.

bubnenkoff avatar Feb 13 '19 09:02 bubnenkoff

Во-первых, есть логгер. Можно писать Log.d(...), Log.fd(...) и всё в таком духе. Я так понимаю, у вас не линукс, весь лог направляется в файл ui.log. Его можно перенаправить в консоль, если после инициализации GuiApp написать Log.setStderrLogger(); или Log.setStdoutLogger();. Во-вторых, можно пользоваться обычным gdb или отладчиком вижуал студии, зависит от среды. Я сам дебаггером редко пользуюсь, мне gdb + ddemangle хватает.

dayllenger avatar Feb 13 '19 13:02 dayllenger

Угу, спасибо, и еще вопрос. А за базу идея компоновки контролов из какого тулкита взята?

bubnenkoff avatar Feb 13 '19 13:02 bubnenkoff

Что именно, layout'ы?

dayllenger avatar Feb 13 '19 13:02 dayllenger

Да

bubnenkoff avatar Feb 13 '19 14:02 bubnenkoff

Они ещё в dlangui были взяты из андроида, потом я их доработал взяв пару вещей из gtk и qt. Я планирую переделывать их дальше, сделать наподобие грида как в CSS, либо anchor'ы как в QML, либо что-то ещё.

dayllenger avatar Feb 13 '19 14:02 dayllenger

Честно Андроидная компоновка мне не очень нравится. Вероятно есть что-то более удобное.

Возможно ли сделать аналог Flexbox компоновки из HTML? Просто тут надо упор сделать на что-то известное широй публике, чтобы не нужно было учить еще один подход

bubnenkoff avatar Feb 13 '19 14:02 bubnenkoff

Можно сделать и flexbox, здесь главное сделать, чтобы все настройки были также в CSS. Сейчас там нельзя задавать лэйауты, можно только в коде писать Row, Column и т.д.

dayllenger avatar Feb 13 '19 14:02 dayllenger

Если интересно мое мнение -- я за флексбоксы. Их как минимум очень много народу знает.

bubnenkoff avatar Feb 13 '19 14:02 bubnenkoff

@dayllenger я попробовал добавить в main() строки

    Log.setStderrLogger();
    Log.setLogLevel(LogLevel.debug_);

И после компиляции приложение начало падать с ошибкой: default

Если убрать:

Log.setLogLevel(LogLevel.debug_);

То вроде работает.

bubnenkoff avatar Feb 14 '19 08:02 bubnenkoff

@dayllenger кстати, может какие-то идеи отсюда могут быть полезны https://gitlab.redox-os.org/redox-os/orbtk

bubnenkoff avatar Feb 27 '19 08:02 bubnenkoff