Павел @kkmspb
девелопер cpp
Информация
- В рейтинге
- 487-й
- Откуда
- Парголово, Санкт-Петербург и область, Россия
- Дата рождения
- Зарегистрирован
- Активность
Специализация
Fullstack Developer
Senior
От 250 000 ₽
OOP
Database
MySQL
PHP
C++
Programming microcontrollers
Qt
Software development
Development of drivers
C
А вы KJob использовали в Qt проектах? Я как-то первый раз об этом слышу.
Да и не планирую пока
Скоро 7 будет, тут нельзя останавливаться
Если вы обратили внимание:
таймер возвращает результат в окно (индикации). Этим стандартный не устроил.
Я третий раз уже объясняю, что мне надо возращать результат выполнения команды как разные объекты, разные варианты классов, структур и т.д. Чего тут не понятного?
Спасибо конечно. KDE конечно интересно как вариант. Но блин билдить kde исходники пока не готов. На будущее конечно посмотрим и Akonadi в.т.ч. Кстати я под виндой если что.
Ну извините, если задел ваше что-то.
Может кому из новичков все-таки полезно будет.
А "диалог окно на qt" я проверял по интернету и не раз. Тут же не речь о том как вывести диалоговое окно.
В принципе да. Но команду можно запускать и вне диалога. Сама команда стартует отложенно по таймеру. Связь между ними диалогом и командой через signal/slot.
QThread::sleep(100); тогда так лучше не делать
да public забыл (как обычно), исправил
Да Qt 4 это C++98. И линакс просто С... И чем линакс плох?
В С++ 98 абстрактные классы есть, без лямбд мы обойдемся, R-value тоже не горит.
Но главное, без Qt5,6,7,8 можно прекрасно жить.
Но ведь работает? Я лично привык и мне не мешает (вроде бы)
Можно еще 3.11 вспомнить, учится никогда не навредит. Дело в удобстве, кто к чему привык и новых возможностях. Для меня Qt5 это не новые возможности, это больше новый гемморой.
Это кому как. Для меня в данном случае это реально панацея от лишних проблем.
фигню можно скачать (если интересно) с https://github.com/PavelDorofeev/How-to-indicating-and-logging-long-process-in-single-thread (ссылку подправил).
Если не интересно можно не скачивать.
А куда торопиться? Вы вызываете slot один раз, потом идет процесс 1,2,3 секунды к примеру. А вы боретесь за миллисекунды (или даже за микросекунды), зачем?
Соглашусь, но это не принципиально, можно как угодно реализовать и не на QLabel.
Спасибо, исправил
QVariant удобен свой универсальностью. Для одних объектов (вызывая их слот) вы возвращаете один тип (класс 1), для других объектов другой тип (класс 2) и т.д. Но функция у вас на все времена одна (call_slot), к тому же статическая (удобно вызывать из любого файла cpp). Вот к примеру, если я хочу применить окно индикации я вызываю слот у объекта примерно так:
передаю параметры, получаю результат в retVal.
Мне кажется отстал больше - лет на 14.
Но тут такой нюанс, что Qt 4 я довольно хорошо изучил (по исходникам если говорить).
Сделал свое развитие некоторых классов (QpTableView и т.д.), то есть добавил новый функционал.
А что в Qt 5, там все по прежнему (в части QtSql например), там все на уровне 2010г. Ну собственно сколько ждать-то еще...
Мне нравится ваш подход, спасибо за статью.
Лично я больше смотрю в сторону выноса части функционала на сервер. По мне так проще на начальном этапе.
Да именно так и сделал в итоге и все вынес из исходников наружу. Все теперь нормально собирается вне исходников, то есть штатно, удобно и т.д.
Там есть несколько переменных типа offset (по цепочке у родителя QSrollArea... чего-то там), offset используется при скроллинге например у QTableView.
Тут я с одной стороны понимаю, это для того чтобы иметь возможность переписывать приватные классы как угодно, чтобы пользователь библиотек даже не заметил этого.
С другой стороны у QScrollAreaPrivate признак экспорта есть, то есть пользователь имеет доступ к его приватным методам извне. А у QAbstractItemView экспорта нет. Как-то не последовательно получается....
Единственно может имеется ввиду, что приватный интерфейс QAbstractItemViewPrivate надо понимать как на стадии разработки, то есть не устоявшийся, на стадии тестирования.
Тогда интересно как в Qt5,6 он тоже всё ещё на стадии тестирования?