July 24, 2019, 8:56 a.m.

Development diaries

Iscander Che, Simple Tracker, Qt, C++

Теперь подробно рассмотрим внутреннее устройство самого трекера и его графического окружения.

Эта часть, с одной стороны, важная, поскольку модели данных служат для перехода от базы данных к использованию данных. С другой стороны, она немного скучная, в части формирования GUI.

Когда я начал работу над проектом, я ещё не знал, как правильно с помощью Qt Desinger установить QSplitter (вот статья, где подробно описано, как это всё-таки можно сделать: https://evileg.com/post/73/ ). Поэтому дизайн окна писал через код. Пришлось потратить вечер, чтобы немного разобраться. И на этот проект я решил писать все окна, в том числе и диалоги, через код. Вначале это было утомительно, но на диалогах стало удобнее: большинство диалогов имеют кнопки ОК и Cancel, и части кода, описывающие сами кнопки, их размещение, сигнально-слотовые соединения и сами слоты можно было спокойно копировать. Конечно, на совсем простеньких диалогах-вопросах можно использовать QMessageBox, но меня огорчил внешний вид итоговых окон. Возможно, надо повозиться с размерами, чтобы фразы отображались красиво, но я не захотел. Зато автоматическое размещение компонентов прямо из кода меня вполне устроило.

July 23, 2019, 3:17 a.m.

Development diaries

Simple Tracker, Qt, Iscander Che, C++

Базу данных я буду реализовывать на SQLite. В базе должно быть размещено две таблицы: для проектов и для задач. Таблицы в базе данных независимы друг от друга. Все переменные для базы данных и таблиц сделаны глобальными для единообразия.

July 22, 2019, 10:36 a.m.
Pavel K.

C++

Привет. Хочу написать парсер пользователей ВК на QWidget. Есть у кого идеи (или пример кода)?

July 20, 2019, 3:36 a.m.

Development diaries

QDialog, FireBird, QSettings, QIBASE, Qt

Диалог настроек подключения к ЦБ

Хранить настройки подключения будем с использованием QSettings в текстовом файле, т.е. используя QSettings::IniFormat. В класс DataBases добавим метод bool connectCenralDB() в котором и реализуем подключение.
Если попытка подключения не удачна вызываем диалог настроек подключения ConnectionSettingDialog в котором возможно изменение настроек.

July 19, 2019, 2:55 a.m.

Qt

Qt

В статье описывается использование QLocalServer и QLocalSocket. Пример является переработкой кода из книги Шлее «Qt 5.3. Профессиональное программирование на C++», посвящённого QTcpServer и QTcpSocket соответственно. Не смотря на то, что наименования классов похожи, и используются в одном и том же модуле, пара существенных отличий есть. Их мы рассмотрим по ходу изложения.

QLocalServer и QLocalSocket реализуют механизмы именованных каналов или сокетов домена Unix. Подробнее об этом можно почитать здесь и здесь .

Пример состоит из двух частей. В первой реализуется QLocalServer, во второй – QlocalSocket.

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

В свою очередь, сокет выводит на монитор виджет с текстовым полем и кнопкой. В текстовом поле отображается информация, поступающая от сервера и служебная информация самого сокета (обнаружение подключения в начале сеанса или ошибка подключения к серверу в случае его недоступности). По нажатию кнопки сокет отправляет информацию серверу.

July 15, 2019, 7:32 a.m.

Development diaries

Iscander Che, Simple Tracker, Qt, C++

Общая структура показана ниже.

Наименование проекта я подправил. Но в заголовках статей и метках я всё равно оставлю «Simple tracker», чтобы не было путаницы.

Проект состоит из подпроектов клиентской и серверной части и подпроекта тестирования. Главный файл проекта выглядит так.

TEMPLATE = subdirs

CONFIG   += ordered

SUBDIRS += ICTrackerServer ICTrackerClient tests
July 12, 2019, 6:29 a.m.

Development diaries

database, QSQLITE, Qt, Logs

Настройка логирования

Поддержка логирования в приложении позволяет как минимум решать следующие задачи:

  • фиксирование действий пользователя в приложении;
  • фиксирование выполнения операций с данными;
  • фиксирование критических событий при работе программы.

И вообще чтение логов волнующий и захватывающий процесс при обеспечении поддержки работы программного обеспечения.

Организацию логирования событий приложения я позаимствовал из этой статьи . Немного модифицировав Реализацию обработчика для того чтобы сообщения дублировались в окно консоли.

July 11, 2019, 4:26 a.m.

Development diaries

Qt, Git, gitHub, qtcreator

В основном я работаю на SuSE Linux. В настоящее время использую openSUSE Tumbleweed, Qt 5.13.0. Пользователи же будут использовать Windows. Поэтому я использую GitHub для импорта проектов при сборке для других платформ а также для работы над ним как на работа так и из дома.

July 10, 2019, 2:53 p.m.
IscanderChe

Qt

Есть таблица:

CREATE TABLE tbl (id INTEGER PRIMARY KEY AUTOINCREMENT, date_latest DATE, type_string TEXT)

Как проверить в Qt, что записи с таким-то id нет?

July 10, 2019, 8:29 a.m.

Development diaries

Qt, QIBASE, FireBird

Небольшое вступление.

Для меня программирование хобби, дабы поддерживать в тонусе мыслительные процессы. Поэтому наверняка будут не совсем профессиональные подходы к решениям той или иной задачи. Поэтому всегда буду рад любым советам и критическим замечаниям. Участвовать в наполнении раздела Дневники разработки решил для того чтобы структурировать и дисциплинировать собственный процесс разработки.

Проект задумывался как набор инструментов для изменения настроек ПО АРМ Оператора АЗК М-Пос. Этот набор должен предоставлять сотрудникам техподдержки оперативно изменять настройки системы одновременно на нескольких (до 200) объектах без использования ручного выполнения SQL запросов. Это так же позволит выполнять изменение настроек сотрудникам не являющимися специалистами в IT сфере, освобождая время техподдержке для решения более насущных задач.

Looking for a Job?
25,000.00 руб. - 30,000.00 руб.
Разработчик Qt/C++
Barnaul, Altai Krai, Russia

For registered users on the site there is a minimum amount of advertising

DSh
Sept. 21, 2019, 2:55 p.m.
Dmitrij Shilkov

C++ - Test 001. The first program and data types

  • Result:46points,
  • Rating points-6
s
Sept. 18, 2019, 5:19 p.m.
sanyalitv

C++ - Test 002. Constants

  • Result:33points,
  • Rating points-10
s
Sept. 18, 2019, 5:12 p.m.
sanyalitv

C++ - Test 001. The first program and data types

  • Result:80points,
  • Rating points4
Last comments
M
Sept. 20, 2019, 11:25 a.m.
Mark

вызываю метод get у m_downloader в другом методе и приложение начинает вылетать. В чем ошибка?
M
Sept. 19, 2019, 5:45 a.m.
Mark

А вот как выгрузить файл на сервер по http протоколу? Допустим на regRu. И как получить путь файла, которой отображается в файловом менеджере regRu, чтобы загрузить его.
Sept. 17, 2019, 6:07 a.m.
Misha Lebedev

Кстати интересные темы нашёл тут https://emacsway.github.io/ru/django-framework/#django-models Может что полезного тоже Евгений найдёте
Sept. 17, 2019, 4:50 a.m.
Misha Lebedev

Доброго времени суток. Спасибо за хороший ответ, У меня ситуация така что в галлереи будет несколько миллионов фотографий с фильтрами и тегами , и я опасаюсь за производительност . Это ос…
Sept. 17, 2019, 3:23 a.m.
Evgenij Legotskoj

Добрый день. Да, я тоже читал ту статью в своё время и согласен с тем, что внешние ключи гораздо лучше, чем GenericForeignKey. Выборки в ряде случае работают быстрее. Но лично мне про…
Now discuss on the forum
M
Sept. 22, 2019, 1:54 a.m.
Mark

Пока реализовал так: на сервере лежат сами файлы и файл с именами всех файлов и их версий, который админ обновляет при довавлении файла. Клиентское по парсит этот файл и таким образом понимает к…
MS
Sept. 21, 2019, 12:51 p.m.
Mihail Sermjazhko

Так работает import QtQuick 2.7import QtQuick.Window 2.2import QtQuick.Controls 2.0Window { id: demo width: 800 height: 600 visible: true color: "#ff303030" prope…
MS
Sept. 21, 2019, 11:46 a.m.
Mihail Sermjazhko

Говорят через делегат должно работать: ListView{ id:l anchors.fill: parent model: ["data 1","data 2","data 3"] currentIndex : 2 delegate: Text { Rectangle{ …
C
Sept. 21, 2019, 9:08 a.m.
Cobra91151

Здравствуйте! Я хочу подключатся к сетям WiFi Enterprise через свою программу. Настроил Radius Server, поключение к сети через Windows работает. Но при подключении через программу пишет: о…
Sept. 20, 2019, 4:56 a.m.
Pavel K.

Привет , подскажите кто-нибудь , как сделать драг н дроп , не нарушая при этом логику работы зума? import QtQuick 2.6 import QtGraphicalEffects 1.0 Page { id:win property string fi…
EVILEG
About
Services
© EVILEG 2015-2019
Recommend hosting TIMEWEB