Просмотр сообщений
|
Страниц: [1] 2 3 ... 9
|
2
|
Qt / Qt Quick / Re: Найти и выделить слово в TextArea
|
: Апрель 10, 2024, 14:20
|
Ну так у меня вопрос же касался Quick а не виджетов, и мне класс не нужен, и таких методов нету у меня дял применения.
Исходил из того, что QSyntaxHighlighter может сожрать QQuickTextDocument, и предполагал что остальные quick компоненты имеют идентичную функциональность. Не вышло.
|
|
|
3
|
Qt / Qt Quick / Re: Найти и выделить слово в TextArea
|
: Апрель 09, 2024, 17:55
|
Так QSyntaxHighlighter именно для подсветки, дабы сразу подсветить во всем тексте искомую фразу (при этом не искажая формат текста).
С QML не работаю, но:
У QTextEdit есть document(). У QTextDocument есть find() возвращающий QTextCursor (с выделением искомого). Дальше QTextEdit::setTextCursor, и на всякий случай есть QTextEdit::ensureCursorVisible(), который «scrolling the text edit if necessary».
Вижу так.
|
|
|
7
|
Qt / Работа с сетью / [РЕШЕНО] QNetworkAccessManager и MS Exchange
|
: Август 31, 2021, 23:49
|
Добрый день. Ни у кого не было попыток задружить этих двух животных? Пытаюсь отправить письмо через Exchange 13. Отсюда Get started with EWS client applications взял пример SOAP запроса и после чего пытаюсь выполнить такой код: auto Manager = new QNetworkAccessManager;
connect(Manager, &QNetworkAccessManager::authenticationRequired, this, [=](QNetworkReply* /*Reply*/, QAuthenticator* Auth){ qDebug() << "Authentication"; Auth->setUser("login"); Auth->setPassword("password"); });
connect(Manager, &QNetworkAccessManager::finished, this, [=](QNetworkReply* Reply){ if (Reply->error() == QNetworkReply::NoError) { qDebug() << Reply->readAll(); } else { qDebug() << "Error:" << Reply->errorString(); } });
QString CreateItemSOAPRequest = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" "<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" \n" " xmlns:m=\"https://schemas.microsoft.com/exchange/services/2006/messages\" \n" " xmlns:t=\"https://schemas.microsoft.com/exchange/services/2006/types\" \n" " xmlns:soap=\"https://schemas.xmlsoap.org/soap/envelope/\">\n" " <soap:Header>\n" " <t:RequestServerVersion Version=\"Exchange2007_SP1\" />\n" " </soap:Header>\n" " <soap:Body>\n" " <m:CreateItem MessageDisposition=\"SendAndSaveCopy\">\n" " <m:SavedItemFolderId>\n" " <t:DistinguishedFolderId Id=\"sentitems\" />\n" " </m:SavedItemFolderId>\n" " <m:Items>\n" " <t:Message>\n" " <t:Subject>Test subject</t:Subject>\n" " <t:Body BodyType=\"HTML\">Simple text test</t:Body>\n" " <t:ToRecipients>\n" " <t:Mailbox>\n" " <t:EmailAddress>*@*.ru</t:EmailAddress>\n" " </t:Mailbox>\n" " </t:ToRecipients>\n" " </t:Message>\n" " </m:Items>\n" " </m:CreateItem>\n" " </soap:Body>\n" "</soap:Envelope>\n";
QNetworkRequest Request = QNetworkRequest(QUrl("https://<servername>/EWS/Exchange.asmx")); Request.setHeader(QNetworkRequest::ContentTypeHeader, "text/xml; charset=utf-8");
Manager->post(Request, CreateItemSOAPRequest.toUtf8());
Авторизация проходит и сервер возвращает: 400 Bad Request Хотелось бы понять куда копать. UPD: все упиралось в использовании https в <soap:Envelope>, заменил на http и все заработало. Правда что, утро вечера мудренее.
|
|
|
8
|
Программирование / Алгоритмы / Re: Засеять поле
|
: Декабрь 15, 2020, 15:27
|
Все возможно интересные опции, советую подсмотреть в multiscatter и iToo Forest (там учтено пожалуй 90% хотелок художника). Если я верно понял, то оба предложения по существу - как-то посчитать "плотность". Ну прикинем во что это вольется. Считаем площади всех полигонов - не вопрос. Как-то (приблизительно) считаем площадь занимаемую объектом. Ну допустим (хотя в деталях пока не знаю как). Хорошо, получили (макс) "плотность". И.. что с ней делать? К тому же объекты посева разные (38 попугаев и.т.д).
Если исходить из условий (что пока сажаем только вершинах), и лобовой атаки... как я и говорил, делим все вершины по плотности (цвету). Дальше, берем вершины с максимальной плотностью (пусть 1), и случайно сеем по ним до тех пор, пока они не кончатся (либо физически, либо будут помечены как узлы не проходящие в силу ограничений). По идее, сеем объекты с минимально возможным масштабом, потом начинаем их увеличивать их с разной скоростью, до стоп условия (по масштабу, по пересечению, ...). Если сетка регулярная, то здесь мы получим процент использования вершин при максимальной плотности (допустим мы заняли 90%). Допустим следующая заказанная плотность 0.8, и тут при случайном засеве у нас появляется дополнительное ограничивающее условие в 72% от доступных вершин. Вроде так. Но это не точно. З.Ы. "Деталировка" определяется указанным пользователем необходимым количеством объектов (т.е. дробить на как минимум столько же посадочных мест). Хотя условие спорное.
|
|
|
9
|
Программирование / Алгоритмы / Re: Засеять поле
|
: Декабрь 14, 2020, 16:27
|
Если очень врукопашно... я бы собрал массивы вертексов по цвету (читай плотности) и сеял бы туда пока не превышена та самая плотность. Начинать надо с максимальной, потому что, скорее всего она не будет достигнута, и надо будет поправлять меньшие плотности.
Т.е. сеем туда, где максимальная плотностью. Она скорее всего не достигается, но мы получаем некий коэффициент для поправки остальных (дабы сохранить отношение).
|
|
|
10
|
Программирование / Алгоритмы / Re: Засеять поле
|
: Декабрь 14, 2020, 15:19
|
Было бы очень кстати иметь возможность задать карту засевания (по минимуму черно белую, по максимум - регулирующую плотность), чтобы быстро и эффективно тропинки прокладывать.
|
|
|
14
|
Qt / OpenGL / Re: Стакан воды
|
: Июнь 09, 2020, 18:40
|
Предположим, что GLASS_ETA - IOR воздуха к IOR стакана. А коэффициенты - реализация дисперсии. Но это не точно.
З.Ы. Жаль автор шейдера удалился с геймдева и не раскрыл его тайны.
|
|
|
|
|