DCTerminal - Моя первая Qt-программа |
Здравствуйте, гость ( Вход | Регистрация )
DCTerminal - Моя первая Qt-программа |
DruidCat |
23.10.2013, 12:54
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 9 Регистрация: 15.10.2013 Пользователь №: 3958 Спасибо сказали: 0 раз(а) Репутация: 0 |
Выделено из темы QtSerialPort, Проблема сборки
Спасибо за совет kuzuils. Помогло. Я хотел бы выложить свою первую программу на QT. Я её писал и заодно учился QT. Данную программу я написал в IDE Eclipse Kepler + QT 5.1.1. for Windows (MinGW 4.. Это Терминал. Он принимает и отправляет символы по последовательному порту. Так, что если у кого из новичков возникнут вопросы на эту тему, можете заглянуть в исходный код, и будет вам счастье. Еще хочу сказать про работоспособность, когда я написал простенькую программу на своем МК AVR 328P и сказал ему циклично выводить одну строчку строчку со скоростью 115200 baud. То, когда я подключал сом порт, у меня программа зависала. А если например МК сказать, выслать циклично одну строчку 100 раз. То программа принимает эту строчку 100 раз, но подключал я сом порт до того как начинал посылать 100 раз строчку. Одним словом, у меня знаний не хватает понять, почему так происходит. Так же терминал не понимает кириллические шрифты, я в документации QT нарыл шрифты, типа "Times" и тому подобные, но они не кириллические. PS: Если кто увидит проблемные места (корявый код) в программе, пожалуйста отпишитесь. Я из тех людей, кто любит учиться и для меня чужой опыт очень ценен.
Прикрепленные файлы
|
|
|
kuzulis |
30.10.2013, 13:36
Сообщение
#2
|
Активный участник Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: 7 |
это плохой пример. потому что в холодильнике вдруг оказался бегемот. а ты хотел колбасу. и тебе надо указать явно, что бегемота не надо. но бегемот уже вылез. неправильные настройки харда не должны убивать софт, в любом случае. А когда столкнулся с библиотекой Дениса (kuzulis), то мне показалась она вверх ногами. Я так же делаю. Да да да. Эта тема уже поднята и бурление начато: https://bugreports.qt-project.org/browse/QTBUG-33774 Там тогда основная проблема в реализации обработок ошибок, т.к. setXX() перед open() еще не означает, что какое-то св-во реально установилось. Оно установится только после open() и пр. Кроме того, если использовать концепт ООП, то методы setXX() должны возвращать void (по идее), а вся обработка ошибок должна осуществляться серез сигнал error(). Т.е. очень много нюансов... API может быть изменится в Qt 6.0, т.к. раньше нельзя это делать.. |
|
|
Iron Bug |
30.10.2013, 21:25
Сообщение
#3
|
Профессионал Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12 |
там тогда основная проблема в реализации обработок ошибок, т.к. setXX() перед open() еще не означает, что какое-то св-во реально установилось. Оно установится только после open() и пр. Кроме того, если использовать концепт ООП, то методы setXX() должны возвращать void (по идее), а вся обработка ошибок должна осуществляться серез сигнал error(). про установку: просто юзеру не должно возвращаться что-либо до прогрузки установок, как я это понимаю. а про код ошибки - это нормальное, технически грамотное решение. я во многих реализациях такое видела и сама так пишу хардовые библиотеки. там фишка в том, что библиотека запоминает поток, который вызвал ошибку, и реально есть целый список, привязанный к потокам. а когда поток обращается за идентификатором ошибки, библиотека по его хэндлу находит соответствующую ошибку. этим решается вопрос работы с многопоточными приложениями, просто и элегантно. а в Qt много корявостей, факт. и ещё непонятно, собираются (и вообще могут ли) они их решать. ибо там проблемы на уровне архитектуры. слишком они перемудрили с организацией своей шины сообщений и работа с потоками стала весьма кривой и неудобной. P.S, мы опять тут нафлудили не по теме и надо обратно в тему про библиотеку работы с COM-портами это переносить Сообщение отредактировал Iron Bug - 30.10.2013, 21:28 |
|
|
Текстовая версия | Сейчас: 28.11.2024, 21:17 |