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

Войти
 
  Начало Форум WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  
  Просмотр сообщений
Страниц: 1 [2] 3 4 ... 12
16  Qt / Вопросы новичков / [РЕШЕНО] VS 2015 Community + Qt 5.8 Статическая сборка, помогите : Март 10, 2017, 16:48
Возникла потребность установить статическую сборку Qt 5.8 под VS 2015.
Вечером вооружился видеоинструкцией (https://www.youtube.com/watch?v=Aj41yY2Q1Bo), приступил...

Поставил VS 2015 Community (скачал образ, выбрал все опции, получил русифицированный пакет VS 2015 Community с 3-м обновлением).
Скачал Qt в сорсах (http://download.qt.io/official_releases/qt/5.8/5.8.0/single/qt-everywhere-opensource-src-5.8.0.zip), разархивировал в C:/QTINST
Установил DirectX SDK.
Запустил консоль разработчика VS, зашел в папку C:/QTINST, запустил "configure -debug-and-release -static -opensource -opengl desktop -nomake examples -nomake tests"
После того, как configure отработала, скачал последний Jom (http://download.qt.io/official_releases/jom/jom_1_1_2.zip) и кинул его в C:/QTINST
Запустил jom без параметров из консоли разработчика VS, дождался завершения его работы.

Запустил VS (в студии с момента ее установки ничего не делал). Запустил Сервис->Расширения и обновления..., установил Qt Package и Qt Visual Studio Tools.
После перезапуска VS в верхнем меню появился элемент QT5, в Qt Options... добавил сборку, указал путь C:/QTINST/qtbase

Результат: нет проектов Qt5 в списке шаблонов (Создать новый проект...)
Попытки открывать старые .pro файлы из меню QT5 визуально ни к чему не приводят.
ОС Windows 7 x64 Домашняя расширенная (лицензия).

Последний раз собирал статическую Qt под VS 9 лет назад и деталей не помню. Вопрос к специалистам: что сделал не так? Что не сделал?
По-прежнему очень нужна полноценная статическая сборка, со всеми опциями и библиотеками, при помощи которой можно было бы ваять любой софт под винду (с поддержкой сети, баз данных, аудио-видео, xml etc...)

UPD Более не актуально
17  Qt / Вопросы новичков / Re: Проигрывание ролика Youtube в Windows-приложении : Март 10, 2017, 16:17
Захотелось мне проверить, что не обманул с QWebViewEngine Улыбающийся

Да, ролики Youtube он проигрывает, 5.3.1 тоже их гонял без глюков.
Что касается проигрывания YouTube онлайн средствами QMediaPlayer/QVideoWidget, URL ролика YouTube - не адрес видео, а адрес страницы ролика... Но есть опенсорсный проект, где эта возможность реализована, и, на первый взгляд, не слишком мудрено.
18  Qt / Мультимедиа / Как узнать тех. параметры видео до проигрывания? : Март 08, 2017, 18:28
Реализована ли в последней Qt возможность читать техинфу и тэги медийных файлов?

Проблема: имеется видеоклип, который нормально проигрывается QMediaPlayer в окошке QVideoWidget.
Однако хотелось бы проигрывать его в оригинальном разрешении, а не подгонять видеопоток под размер окна.
Как узнать разрешение?

Код:
QMediaContent media(QUrl::fromLocalFile("C:/VIDEOS/123.mp4"));
QSize resolution = media.canonicalResource().resolution();
width = -1, height = -1. Баг?

В плеере mp->media->canonicalResource().resolution() соответственно те же результаты.
19  Qt / Вопросы новичков / Re: Проигрывание ролика Youtube в Windows-приложении : Март 08, 2017, 16:29
Еще есть QWebEngineView
Можно также получить ссылку на нужный ролик (нужного формата и качества) и доступным плеером воспроизвести

В Creator виджеты веба убрали, QWebEngineView надо добавлять руками.

Вы про Qt говорите?
Вроде бы, у Qt сборки mingw QWebEngine отсутствует, а вот для сборки через компилятор мелкомягкий есть Улыбающийся

Можно использовать QVideoWidget, он может и по ссылкам в сети воспроизводить

Да, про Qt, у меня последняя mingw. Спасибо, протестирую все ваши предложения.
20  Qt / Вопросы новичков / Re: Проигрывание ролика Youtube в Windows-приложении : Март 08, 2017, 15:56
Еще есть QWebEngineView
Можно также получить ссылку на нужный ролик (нужного формата и качества) и доступным плеером воспроизвести

Да, можно создать веб-страницу и встроить видеоролик. В Creator виджеты веба убрали, QWebEngineView надо добавлять руками.
А что вы имеете в виду под "доступным плеером"? Внешний плеер (вроде VLC), который приложение запустит с параметрами?
Мне нужно чтобы на одной из вкладок (QTab) пользователь мог смотреть ролики по теме, непосредственно на самой вкладке.
21  Qt / Вопросы новичков / Проигрывание ролика Youtube в Windows-приложении : Март 08, 2017, 15:27
Подскажите пожалуйста, как загрузить и проиграть ролик Youtube в десктопном приложении.
Только QML? Версия Qt 5.8.
22  Разное / Говорилка / Re: Работа : Март 07, 2017, 17:18
upwork

Имеете в виду Elance и прочие фриланс-биржи?

PS Дополнительный вопрос ко всем... Насколько важно наличие портфолио (собственных программ с исходниками)? Насколько это влияет на положительное решение при приеме на работу?
23  Разное / Говорилка / Работа : Март 07, 2017, 09:44
Подскажите пожалуйста, как сейчас обстоят дела с работой для разработчиков С++/Qt в российских компаниях, в частности в Москве?
Легко ли найти место для стажировки? Легко ли найти удаленку? Может кто что посоветует - где искать, альтернативные варианты (иностранные компании)?
Заранее спасибо.
24  Программирование / Базы данных / Re: MySQL: SIGNED -> UNSIGNED : Апрель 30, 2015, 05:25
abc2 - пустая таблица с UNSIGNED столбцом
abc - полная таблица с SIGNED столбцом
x - столбец со значениями, испорченными знаком

INSERT INTO abc2 (id, x, y, x) SELECT id, x+4294967296, y, z FROM abc WHERE x < 0
25  Программирование / Базы данных / [РЕШЕНО] MySQL: SIGNED -> UNSIGNED : Апрель 29, 2015, 20:01
Когда-то давно в MySQL была создана таблица, которая копит статистику. В ней скопилось около 45 миллионов строк.
Проблема в том, что одно из полей было создано как INT(11), диапазон значений без знака - 31 бит, и бит на минус. Тогда казалось, что этого хватит в запасом, оказалось - нет.
За несколько лет значения выросли до 32 бит без знака, и в таблицу стали ложиться ID вроде -245682794 (автоматически преобразованные сервером из больших SIGNED).
А нужно UNSIGNED, 4 байта, притом как можно быстрее. Попытка создать временную таблицу и запилить туда минусовые значения приводит к ошибке (дублирование значения 0 для уникального столбца - видимо, автоматическое преобразование назад не работает).

Вопрос:

Как преобразовать минусовые значения и получить ID в том виде, как он выглядел до автоматического преобразования в SIGNED сервером?
Можно ли это сделать средствами запроса MySQL? Попытка использовать CAST приводит к преобразованию в BIGINT (64 бита), что совсем не нужно.
В принципе, можно сделать это и скриптом PHP. Подскажите пожалуйста, как вычислить исходное значение?
26  Разное / Говорилка / Re: Плюсолюбителям : Март 17, 2015, 01:46
Выделение "про запас" плохо не столько с технической точки зрения, сколько алогично: в коде, где память живет независимо от данных, легко запутаться, необходимо помнить о времени-месте возврата, и, к тому же, необходимо вводить счетчик, отделяющий полезную память буфера от бесполезной. На вопрос, почему буфер - 100 элементов, а не 7394, тоже может возникнуть, а значит, придется отвечать, если нет желания запоминать число 100. Такое решение говорит о недостаточно хорошо продуманном алгоритме (ошибке в подходе к данным, их размещению и обработке). Код должен оперировать только полезной информацией, а выделенная под нее память должна освобождаться сразу же, как только исчезает необходимость в обработке данных. Все остальное создает неоднозначности и коллизии. Если нас интересует размер объекта в байтах, этот интерес тоже должен иметь логическое продолжение, быть частью алгоритма.

Цитировать
А вас не интересовало никогда, с практической точки зрения, сколько памяти занимает объект? Например QObject (это всего лишь пример!).  Анализируя с помощью valgrind код, интересные вещи узнаёшь, о которых никогда бы не подумал, что там узкое место.

Нет. При высоких затратах я выигрываю в скорости разработки сносно работающей программы. Умственная лень и бабло победили добро, развратила дешевая RAM и гигагерцы. Улыбающийся Qt - черный ящик, лезть внутрь нет желания. Но хочется потрогать кнопочки, чтобы представлять пределы фантазии создателей. Если мои проекты на Qt будут развиваться, и окажется, что программы с QObject жрут слишком много и не работают на нужных машинах, поинтересуюсь, сколько захватывают QObject, QVariant,... ужаснусь, напишу что-нибудь свое, на базе простых типов. Есть расчетные задачи, где нужно считать такты CPU, но построение GUI к ним не относятся. GUI сложен и строится один раз, а Qt - это, в первую очередь, GUI.

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

Этих проблем можно избежать, если пользоваться базовыми типами данных, либо типами данных, которые имеют четкие спецификации. В противном случае вы - заложник библиотеки, объекты которой могут не только занимать много места при создании, но и раздуваться, плодя буферы неизвестного размера... Сегодня считается, что риск оправдан (если вам нужно 100% рабочее приложение - не оправдан). Qt - любительская библиотека, хотя сегодня ее продают за деньги. Это преступление? Юридически - нет, логически - да. Крутой
27  Разное / Говорилка / Re: Плюсолюбителям : Март 16, 2015, 18:05
Перед тем, как требовать ответ на вопрос, следует разобраться, нужен ли ответ. Размер блока вообще знать не обязательно. Если программисту нужен размер блока, который он же выделяет, речь идет о слабом программисте, ущербном алгоритме и бесполезном приложении, потому что память выделяют под конкретные данные, а не "с запасом". Думаю, со временем функция выделения физической памяти останется у процессора, и доступ к таблице блоков будет ограничен. Выход за границы блока простых данных приведет к ошибке, и в 100% случаев это ошибка алгоритма (программиста).
28  Qt / Общие вопросы / Re: Почему вы выбрали Qt : Март 10, 2015, 17:35
Ну совет всем горюющим по сложности и высокому порогу вхождения - переезжайте в пещеры, охотьтесь сами и изобретайте велосипеды. Чтобы создать велосипедную и простую зубочистку было потрачено сотни человекочасов Веселый

Так пока все наоборот: разработчики и потребители так называемого современного софта дрейфуют в сторону пещер, и скоро, в результате очередного "снижения порога вхождения" начнут охотиться на мамонтов. Чтобы не деградировать, необходимо ставить и решать сложные задачи, анализировать и синтезировать, чему способствует строгость инструментария и определенный порядок.
Никто не утверждает, что следует переписывать stdio.h под себя, но если пять лет подряд слушать шансон и Тимати, можно испортить даже абсолютный слух. А что взамен? Простота? Амеб на планете навалом, и качество их жизни не особенно привлекательно...
29  Qt / Общие вопросы / Re: Почему вы выбрали Qt : Март 10, 2015, 16:21
Основное достоинство Qt - возможность создать работающее приложение за считанные часы, а то и минуты. Притом приложение, для написания которого обычно требуются специальные знания. А здесь все легко: залез в хэлп, прошелся по форумам, просмотрел пару исходников, и программа готова. Хоть сервер TCP/IP, хоть музыкальный редактор. Наверное, в 6-й версии разработчики всюду добавят методы run() и stop(), и тогда заживем... Улыбающийся
Конечно, есть и побочные эффекты использования Qt, куда же без них. Кожа темнеет, рост уменьшается, легко переходишь на хинди... Веселый
30  Qt / Вопросы новичков / Re: query.next() : Март 09, 2015, 22:00
В таблице точно больше одной строки? Проверьте количество записей в таблице

query.clear();
if(!query.exec("SELECT COUNT(*) FROM Theme"))
  qDebug() << "Ошибка запроса: " << query.lastError().text();
else
{
  query.next();
  qDebug() << "Число строк в таблице: " << query.value(0).toInt();
}

Если выдает верное число строк, тогда затрудняюсь ответить.
Если неверное, ошибка в подключении к БД.

PS "ThemeID" - это текст? Если все-таки INT, логичнее выглядит QString::number(query.value("ThemeID").toInt());
Страниц: 1 [2] 3 4 ... 12

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