Просмотр сообщений
|
Страниц: 1 [2] 3 4 ... 9
|
16
|
Qt / Работа с сетью / Re: QTcpSocket::readAll() SIGSEGV
|
: Сентябрь 02, 2015, 14:04
|
В потоке, в котором создаете сокет, делаете все connect() и слоты там же пусть отрабатывают. Абсолютно всю работу с сокетом выносите в тот поток, где он был создан.
|
|
|
17
|
Программирование / С/C++ / Re: Вопрос по запуску программы QT на другом компьютере
|
: Август 29, 2015, 20:14
|
Да, Вам нужна папка plugins/imageformats из директории, куда установили Qt. Положить ее рядом с исполняемым файлом. Аналогичное происходит с драйверами БД, если Вы будете работать в будущем с базами данных. В 4ой версии не скажу, но в Qt5 можно натравить на свой екзешник утилиту qtwindeploy.exe и она скопирует в папку с екзешником все нужные файлы для его запуска. находится она рядом с qmake.exe в папке установки Qt/bin.
|
|
|
18
|
Qt / 2D и 3D графика / QPainter, drawText() в Qt5.5.0
|
: Август 25, 2015, 19:32
|
Добрый день Если коротко: следущий код на Qt5.5.0 MinGW 32 (Windows 7) QBitmap bitmap(800, 400); QPainter painter(&bitmap); painter.setRenderHint(QPainter::TextAntialiasing, true); painter.setRenderHint(QPainter::Antialiasing, true); painter.setPen(Qt::white); for (int i = 0; i < 800; ++i) { for (int j = 0; j < 400; ++j) { painter.drawPoint(QPoint(i, j)); } } painter.setPen(QPen(Qt::black)); QFont font("Arial", 46); font.setBold(true); font.setItalic(true); painter.setFont(font); painter.drawText(QRect(100, 100, 400, 200), Qt::AlignRight | Qt::AlignBottom, "The Text 34 Arial"); bitmap.save("D:\\test.bmp", "BMP");
Выдает то, что на прикрепленной картинке. Если выставить размер 48 и более, текст рисуется нормально. Что можно сделать с этим и у всех ли подобное поведение наблюдается, ибо нужно отрисовать 34ым шрифтом? п.с. На Qt4.8.6 работало нормально, на Qt5.2.1 тоже и по-моему на Qt5.4.0 рисовало как надо.
|
|
|
20
|
Qt / Установка, сборка, отладка, тестирование / Qt5.5.0 статическая сборка VS2013
|
: Август 04, 2015, 14:42
|
Здравствуйте. Понадобилось собрать статически Qt5.5 (Win7x64). Делал по инструкции http://doc.qt.io/qt-5/windows-building.htmlПоследовательность действий: 1. Загрузил исходники, распаковал в D:\Qt\Qt5.5.0VS2013static, установил Python, Ruby, Perl, все они доступны в PATH. 2. Создал файл qt5vars.cmd REM Set up \Microsoft Visual Studio 2013, where <arch> is \c amd64, \c x86, etc. CALL "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x86 SET _ROOT=D:\Qt\Qt5.5.0VS2013static SET PATH=%_ROOT%\qtbase\bin;%_ROOT%\gnuwin32\bin;%PATH% REM Uncomment the below line when using a git checkout of the source repository REM SET PATH=%_ROOT%\qtrepotools\bin;%PATH% SET QMAKESPEC=win32-msvc2013
Создал для него ярлык - рабочей папкой указал D:\Qt\Qt5.5.0VS2013static
- объект %SystemRoot%\system32\cmd.exe /E:ON /V:ON /k D:\Qt\Qt5.5.0VS2013static\qt5vars.cmd
3. Запустил ярлык с предыдущего пункта. 4. Выполнил configure -opensource -release -static -debug-and-release -nomake examples -openssl -I C:\OpenSSL-Win32\include -L C:\OpenSSL-Win32\lib -opengl dynamic -platform win32-msvc2013 -make libs -qt-zlib -qt-libpng -qt-libjpeg -qt-freetype -no-harfbuzz
Пути к SSL существуют. 5. Запустил jom.exe. 6. Прошло какое-то время, компиляция закончилась, сообщений об ошибках не увидел. 7. Установил Qt Add-In (указал там путь D:\Qt\Qt5.5.0VS2013static\qtbase). 8. При попытке компиляции простого проекта (стандартное если создавать с помощью Add-In) получаю много ошибок unresolved reference. Все не напишу, а вот первая была вроде такого unresolved reference to void QRegularExpressionPrivate:: ....
Все ошибки не приведу ибо уже удалил результаты сборки Пробовал уже раз 5 это дело. Уже и прописывал в D:\Qt\Qt5.5.0VS2013static\qtbase\mkspecs\win32-msvc2013\qmake.conf QMAKE_CFLAGS_RELEASE = -O2 -MT QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MT -Zi QMAKE_CFLAGS_DEBUG = -Zi -MTd
Не помогло. Может кто собирал недавно статически и знает, что я забыл/не сделал. п.с. читал тему товарища 8Observer8, но там MinGW.
|
|
|
22
|
Qt / Вопросы новичков / Re: qDebug в Qt5.5 выводит символы \n
|
: Август 01, 2015, 07:52
|
Только что попробовал. Qt5.5.0 VS2013 32bit: Такой код qDebug() << QString("test\n"); qDebug() << "test\n";
дает вывод: Запускается .... "test\n" test
... завершился с кодом 0
Может мне снилось, но что-то читал об этом, нововведение что ли, с utf8 связано, но точную формулировку не знаю.
|
|
|
23
|
Qt / Работа с сетью / Re: QSslSocket: Разрешить на сервере только своих клиентов
|
: Июль 27, 2015, 08:09
|
С авторизацией по сертификату предложили Вам - добротное решение, проверенное временем и т.д. (в этом случае следует иметь в виду, что сертификаты имеют свойство истекать и их придется заменять на новые, также можно генерировать один клиентский на всех, а можно один сертификат на каждого клиента) Все зависит от уровня безопасности. С любым из вариантов нужны доп телодвижения, будь то авторизация по логину/паролю/токену/сертификату. Если очень элементарный нужен всего-навсего, можете клиентом при подключении присылать на сервер "магическую комбинацию байт" (хоть фразу "Привет, ребята, я свой"). Кто не пришлет - disconnectFromHost(). А так для сервера все сокеты на одно лицо, они ведь сокеты
|
|
|
24
|
Qt / Установка, сборка, отладка, тестирование / Re: [РЕШЕНО] Библиотеки Qt5.5 в Ubuntu14.04
|
: Июль 17, 2015, 10:01
|
А как сделали?
Взял и "слизал" по примеру QtCreator. В папку с исполняемым файлом поместил qt.conf с таким содержанием: И создал такой скрипт для запуска (vcontroller - название исполняемого файла): #!/bin/sh
me=`which "$0"`
bindir=`dirname "$me"` libdir=`cd lib ; pwd` LD_LIBRARY_PATH=$libdir:$libdir${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} export LD_LIBRARY_PATH exec "$bindir/vcontroller"
Возможно и без переменной bindir можно было обойтись ибо исполняемый файл лежит рядом со скриптом, а в случае QtCreator - в папке bin. Плюс рядом с исполняемым файлом находится папка lib, куда скопировал библиотеки (и символьные ссылки). У меня Qt5.5 установлен по адресу /home/programmer/Qt/Qt5.5.0, поэтому список библиотек для копирования вывел так: ldd vcontroller | grep "home"
У меня использовались только core, serialport, websockets и network, список вышел таким: - libQt5WebSockets.so.5; - libQt5WebSockets.so.5.5.0 - libQt5Network.so.5 - libQt5Network.so.5.5.0 - libQt5SerialPort.so.5; - libQt5SerialPort.so.5.5.0 - libQt5Core.so.5; - libQt5Core.so.5.5.0 - libicui18n.so.54; - libicui18n.so.54.1; - libicuuc.so.54; - libicuuc.so.54.1; - libicudata.so.54. - libicudata.so.54.1; И судя по всему qt.conf не нужен ибо у меня была там ошибка (../lib было) и все равно запускалось. А на целевую машину уже планирую deb-пакетом устанавливать все это добро. п.с. Если у кого есть замечания/дополнения, с удовольствием выслушаю. Магию вот этого выражения не понял ибо не эксперт в bash: ${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
|
|
|
26
|
Qt / Установка, сборка, отладка, тестирование / Re: Библиотеки Qt5.5 в Ubuntu14.04
|
: Июль 10, 2015, 20:17
|
на целевую машину установить такой же дистрибутив (.run) Qt 5.5 и по такому же пути, как на машине где разрабатывается.
Как один из вариантов. Хочется, конечно, не тащить всего "монстра" в виде дистрибутива, а только qmake + библиотеки. Поэтому попробую, как посоветовали, deb-пакет, а на крайний случай, если не выгорит, уже целый дистрибутив установлю.
|
|
|
27
|
Qt / Установка, сборка, отладка, тестирование / [РЕШЕНО] Библиотеки Qt5.5 в Ubuntu14.04
|
: Июль 06, 2015, 09:07
|
Добрый день. OS: Ubuntu 14.04. Как было раньше: установил на свой ПК Qt с официального сайта, написал код, загрузил исходники на целевую машину, установил библиотеки типа qtbase5-dev, а также qmake, выполнил qmake, make, make install. С чем столкнулся: в репозитории библиотеки от Qt5.2.1, в проекте необходимо использовать QWebSocket, который с версии 5.3. То есть, если загрузить сейчас с сайта Qt5.5 на свой ПК, можно разрабатывать, тестировать. А если попробовать собрать вышеописанным методом проект на целевой машине, то скорее всего будет сообщение что модуль websockets не существует (ибо в версии 5.2.1 его нет). Поэтому возникает следующий вопрос: загружать исходники и собирать Qt5.5 статически или есть иные варианты развития событий?
|
|
|
28
|
Qt / Вопросы новичков / Re: приложение глючит на ноуте
|
: Июнь 30, 2015, 20:19
|
Если отладчик говорит, что переменные 0, значит так и есть, а значит каким-то образом не выполнился тот код, который у Вас "в конструкторе", хотя конечно мы же с Вами понимаем, что такого не может быть В итоге - попахивает мистикой. Возможно, нужно больше кода на обозрение.
|
|
|
29
|
Qt / Многопоточное программирование, процессы / Re: Организовать межпроцессный обмен данными
|
: Июнь 18, 2015, 06:17
|
Что такое в Вашем понимании "искажения"? Левые данные, потеря данных, кракозябры? Вы под какой ОС запускаете? Может проблема с кодировкой? Попробуйте вывести то что отправили и то что получили как байт, например, toHex(), и сравните. Если байтики совпадают, значит все верно передает и где-то там что-то там с кодировкой. Хотя может вы уже пробовали это
|
|
|
30
|
Qt / Базы данных / Re: [Qt5.4]QMYSQL driver not loaded
|
: Май 10, 2015, 10:15
|
Точно не скажу, они уже года три лежат у меня в папке отдельной. Но, скорее всего, после установки MySql Server их можно найти в папке C:\Program Files\MySql Server 5.5 (версия может быть другой). Там и папка lib, и папка include.
|
|
|
|
|