Russian Qt Forum
Май 04, 2024, 21:27 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало Форум WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  
  Просмотр сообщений
Страниц: 1 [2] 3 4 ... 8
16  Qt / Пользовательский интерфейс (GUI) / Скрыть расширения файлов в фильтре QFileDialog : Февраль 09, 2018, 18:07
Имеется код:
Код
C++ (Qt)
path = QFileDialog::getOpenFileName(this, tr("Open image"), lastPath, formats);
Он открывает окно, где можно выбрать фильтр файлов по расширению (см. прикрепленный скриншот, узенький такой).
Как видите получается огромная портянка. Вопрос, как можно скрыть эти расширения, чтобы осталось только, к примеру, "Изображения" или "RAW"?
Пробовал флаг QFileDialog::HideNameFilterDetails - не изменяется совершенно ничего.

Говорят, в делфи можно отдельно задать отображаемый список и список с расширениями, неужели в Qt такого нет?
17  Qt / 2D и 3D графика / Re: QPainter: обводка текста с выравниванием : Сентябрь 26, 2017, 00:04
Уже сделал. Немного хардкорным методом правда. Рендерю текст в отдельный буфер, строю SDF, делаю обводку, вывожу.
18  Qt / 2D и 3D графика / [Решено] QPainter: обводка текста с выравниванием : Сентябрь 24, 2017, 06:56
Вопрос: как на QImage нарисовать текст с окантовкой (outline) и при этом чтобы работало выравнивание (по левому/правому краю) нескольких строк?
Пробую через QPainterPath но там только метод addText, который не учитывает ни направление письма ни мультистроку ни межстрочный интервал и тд.

Текст рисую так:
p.drawText(rect, flag, currPreset.text);
где p - QPainter
rect - в этот рект вписывается текст
flag - флаги текста (Qt::AlignRight, Qt::TextWordWrap)
19  Qt / Работа с сетью / Re: Перевод SendPOST на Qt : Июль 10, 2017, 21:43
все заголовки надо добавлять в QNetworkRequest, а вторым параметром методу post() подавать только тело (body) запроса, т.е. твою переменную post
Спасибо, помогло! Строчку
"POST /xxx.php HTTP/1.1\r\n"
вообще убрал, а /xxx.php добавил к урлу в реквесте.
20  Qt / Работа с сетью / Re: Перевод SendPOST на Qt : Июль 10, 2017, 19:57
все заголовки надо добавлять в QNetworkRequest, а вторым параметром методу post() подавать только тело (body) запроса, т.е. твою переменную post
А эту строчку куда?
"POST /xxx.php HTTP/1.1\r\n"
21  Qt / Работа с сетью / [Решено] Перевод SendPOST на Qt : Июль 10, 2017, 16:07
Есть делфийский код, в котором средствами WinApi делается post запрос:
Код
Delphi
Result := SendPOST('http://www.xxx.ru', StringToAnsi(Query, CP_ACP), Answer);
где Query выглядит так:
Код:
POST /xxx.php HTTP/1.1
Host: www.xxx.ru
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; WebMoney Advisor; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)
Accept: /
Accept-Encoding: identity
Accept-Language: ru-RU
Connection: Close
Content-Type: application/x-www-form-urlencoded
Content-Length: 103

email=xxxxxxxxx@xxxxxx.ru&key=xxxxxxxxxxxxxxxxxxxx&id=xxxxxx&h=3ffdfe2d17d892aedc681b010598337c&check=1
Вопрос в том, как корректно это сделать на Qt. Судя по тому, что пишут в интернетах, нужно часть строк переписать на setRawHeader, но у меня ничего не получается - ответ от сервера всегда один - мол, не понятно, что ты мне вообще прислал.
В общем моя попытка:
Код
C++ (Qt)
QString post = "email=" + email + "&key=" + key + "&id=" +
id + "&h=" + hardId + "&check=" + ch + "&getd=1";
 
QString query = "POST /xxx.php HTTP/1.1\r\n"
"Host: www.xxx.ru\r\n"
"User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; "
"Trident/4.0; WebMoney Advisor; SLCC2; .NET CLR 2.0.50727; "
".NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)\r\n"
"Accept: /\r\n"
"Accept-Encoding: identity\r\n"
"Accept-Language: ru-RU\r\n"
"Connection: Close\r\n"
"Content-Type: application/x-www-form-urlencoded\r\n"
"Content-Length: " + QString::number(post.size()) + "\r\n\r\n" +
post;
 
QNetworkRequest request("http://www.xxx.ru");
 
manager.post(request, query.toLocal8Bit());

Осложняется еще все тем, что данные передаются/принимаются в кодировке 1251 (toLocal8Bit в данном случае - это я потом переделаю)
22  Qt / Интернационализация, локализация / Re: Передача интернациональной строки в стороннюю либу : Июль 04, 2017, 14:47
Помогло это: https://stackoverflow.com/a/23894895
Как выяснилось в библиотеке используется fopen который на винде работает только для текущей локали. У него есть расширенная версия _wfopen, который работает в юникоде. К счастью, в либе есть вариант с _wfopen.
Решение выглядит так:
path.toStdWString().c_str()
23  Qt / Интернационализация, локализация / Передача интернациональной строки в стороннюю либу [Решено] : Июль 04, 2017, 00:00
Использую FreeImage для открытия\сохранения изображений (потому, что он умеет EXIF, а Qt - нет).
Соответственно для этого библиотеке нужно передать название файла. Названия могут быть такими:

Photo 203.png
Безымянный.png
肖像画.jpg

Эти файлы я считываю через

QString path = QFileDialog::getOpenFileName(...)

Полученную строку пытаюсь передать в либу, но все тщетно:
Если я передаю строку как path.toUtf8().data(), то все работает, только с латинскими названиями.
Если передаю как path.toLocal8Bit.data(), то либа работает только с латинскими названиями и названиями в кодировке текущей локали (в данном случае кириллицей).

Подскажите, пожалуйста, как правильно передавать строки в сторонние либы? Чтобы любые символы читались. Исходники в юникоде, внутри Qt все отображается как надо - проблемы только с либой.

Еще там есть возможность открытия\сохранения по строке типа const wchar_t * (utf16), но как я не пытался конвертировать QString, какую бы я строку не пихал в либо - не работает.

Либа: http://freeimage.sourceforge.net/
24  Qt / 2D и 3D графика / Re: QImage: out of memory, returning null image [Решено] : Июнь 30, 2017, 16:09
96 мб, да, но это графический редактор, там еще  полно всякого - для оптимизации создается много дополнительных буферов с промежуточными вычислениями размером с оригинальное изображение. Для аналогии могу привести лайтрум - там, одно только открытие подобного изображения, увеличивает потребление памяти на 800мб. Но в лайтруме, конечно, свой менеджер памяти, это я так, для сравнения.
25  Qt / 2D и 3D графика / Re: QImage: out of memory, returning null image [Решено] : Июнь 30, 2017, 15:51
да да, влезает. Еслиб не влезало - упало бы сразу.
26  Qt / 2D и 3D графика / Re: QImage: out of memory, returning null image : Июнь 30, 2017, 15:13
Спасибо, еще я кажется понял одну вещь.
Для 32-битного приложение ограничение статической памяти и динамической - по 2 гигабайта, то есть всего 4. Изображения, естественно, находятся в динамической памяти.
Диспетчер задач не позволяет просмотреть пик потребления памяти, например при вычислениях, потребление памяти может на доли секунды возрастать на несколько сотен мегабайт. Отсюда и вылеты.
27  Qt / 2D и 3D графика / QImage: out of memory, returning null image [Решено] : Июнь 30, 2017, 14:41
Windows 7 x64, приложение скомпилено MinGW 5.3 x32.
Открываю диспетчер задач - смотрю потребление памяти. Оно не превышает 1.5гб в пике, но тем не менее в определенный момент приложение вылетает с ошибкой
QImage: out of memory, returning null image

Приложение - графический редактор, само изображение имеет размер 6000х4000
28  Qt / Установка, сборка, отладка, тестирование / Re: Развертывание приложения MSVC2015 - отсутствие библиотек : Июнь 07, 2017, 12:03
да, так и есть
29  Qt / Установка, сборка, отладка, тестирование / Re: Развертывание приложения MSVC2015 - отсутствие библиотек : Июнь 05, 2017, 18:32
Кажется в битности дело. Попробую разные версии - отпишусь
30  Qt / Установка, сборка, отладка, тестирование / Re: Развертывание приложения MSVC2015 - отсутствие библиотек : Июнь 05, 2017, 18:22
Да, не может быть, как бы мне хотелось в это верить. Но ошибки есть и я уже не знаю что делать ><
Страниц: 1 [2] 3 4 ... 8

Страница сгенерирована за 0.104 секунд. Запросов: 23.