Перейти до основного вмісту

Публікації

Показано дописи з 2017

Відправлення email з Qt

Правду кажучи, спочатку у мене нічого не вийшло. Документація в цей раз не допомогла. Форуми теж не дуже були корисні, однак на блозі одного розробника, я знайшов посилання на невеликий проект "SmtpClient-for-Qt". Судячи із записів і вики проект живий, що давало надію. Не знаю чи можна це назвати бібліотекою, але тим не менш, тут є проста інструкція і приклади. Ще один респект розробникам за простий і зрозумілі код. До всього іншого, бібліотека дозволяє відправляти повідомлення з прикріпленим файлом або в форматі html, що було метою. На жаль, ні в проекті, ні на блозі, через який я знайшов його не було згадки про, я вважаю, одну важливу річь. Я швидко зібрав додаток, зробив все як написано ... і нічого не вийшло. Вірніше не зовсім вийшло. В цьому місці потрібно зробити застереження, що я відправляю листи з gmail.com і приймаю також на іншу скриньку google. З інших поштових сервісів не пробував. Відправлення листа складається з кількох етапів: підключення до сервер

Qt Округлення до певного розряду

Округлення - тривіальна задача в математиці, але в Qt немає функції округлення до певного розряду. Проте в QtMath є такі функції як qFloor (qreal) і QCeil (qreal), в результаті яких int. А також можна використовуючи round (double), отримати double. Дуже швидко я знайшов ось цей ресурс звідки взяв вихідну формулу. Вона без сумніву працює, але дає результати, які не відповідаю моїм очікуванням: toRound(187.156, 2); //187.15 toRound(187.156, 1); //187.1 toRound(187.156, 0); //187 toRound(187.156, -1); //180 toRound(187.156, -2); //100 Після невеликої корекції самої функції, її підсумковий варіант виглядає так: double wcsv::toRound(double val, int r) {   double outpValue;   double tempVal;   tempVal=val*pow(10,r);   if (double(int(tempVal))+0.5==tempVal){     int(tempVal)%2 == 0       ? outpValue=double(qFloor(tempVal))/pow(10,r)       :outpValue=double(qCeil(tempVal))/pow(10,r);   } else {     double(int(tempVal))+0.5>tempVal       ? outpValue=double(qFloor(