Просмотр сообщений
|
Страниц: [1] 2 3 ... 16
|
3
|
Qt / Общие вопросы / Re: Не подключается статическая библиотека
|
: Январь 18, 2018, 16:20
|
определения температуры ЦПУ? Есть внешние утилиты, их можно использовать для определения температуры ЦПУ OpenHardwareMonitor OpenHardwareMonitorReport Последнюю можно регулярно запускать в QProcess и читать stdout
|
|
|
6
|
Qt / Дополнительные компоненты / Re: Создаю библиотеку для работы с последовательными портами. [В ПРОЦЕССЕ].
|
: Октябрь 14, 2016, 10:25
|
PS: Я бы не заморачивался, а купил нормальный преобразователь с автоматическим детектированием направления передачи, дабы сохранить нервы и время... Легких путей не существует )))) Я бы с удовольствием "не заморачивался", но некоторое оборудование жестко привязано к железу, и ничего не изменить. К тому-же, моё ПО должно уметь работать с любым оборудованием. Одно радует, что нужна поддержка только Windows, Linux и QNX PSPS: Я даже не знаю, откуда сейчас берут такой раритет с ручным переключением... Да, не перевелись такие. Используется Kontron-овская плата CP346. У этой железки управление приемопередатчиком с помощью сигнала DTR. Есть вероятность что под Windows драйвер умеет автоматом управлять направлением передачи, но оборудование работает под Suse linux SLES9. ( Чем черт не шутит, попробуйте свою реализацию... Она работает, просто хотелось перевести проект на QSerial. Жалко двух потраченых дней. Спасибо за отклик
|
|
|
7
|
Qt / Дополнительные компоненты / Re: Создаю библиотеку для работы с последовательными портами. [В ПРОЦЕССЕ].
|
: Октябрь 13, 2016, 10:46
|
Тема: setRequestToSend() setDataTerminalReady()Вопрос рожден после прочтения следующего сообщения: Re: QSerialPort и RS-485 короткий вопрос.Я понимаю, что QSerialPort работает полностью в асинхронном режиме. Но предложенное решение не подходит для выставления управляющих сигналов, т.к. сигнал bytesWtitten приходит всегда нестабильно во времени, и переключение приемопередатчика происходит с опозданием. В итоге я получаю не весь ответ от опрашиваемого устройства. Существует возможность четкого определения ухода в порт последнего бита ? Или мне поможет только своя реализация поточного опроса COM порта ?
|
|
|
8
|
Qt / Работа с сетью / Re: QTcpServer в Qt5.5 и IPv6
|
: Октябрь 25, 2015, 22:45
|
Не знаю, баг ли это, но Qt5 упрямо выдает адреса в формате IPv6. В своем проекте воткнул вот такой костыль C++ (Qt) QString jCjSHttpConnection::peerAddress() { if(!m_pSocket) { return "0.0.0.0"; } #if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) return QHostAddress(m_pSocket->peerAddress().toIPv4Address()).toString(); #else return m_pSocket->peerAddress().toString(); #endif }
|
|
|
9
|
Qt / Установка, сборка, отладка, тестирование / Qt 5.5.1 для Raspberry Pi 2
|
: Октябрь 25, 2015, 10:39
|
Собрал для себя Qt 5.5.1 для Raspberry Pi 2, решил поделиться. Сборку проводил непосредственно на малине. Потратил времени ~3 суток. Трудности возникли при сборке QtWebkit, поэтому так долго. Приходилось перезапускать процесс сборки, после подсовывания ненайденых хидеров. Тут вы найдете: qt551-arm71-pi-prebuild.tar.gz и qt551-arm71-pi.tar.gz. А также sqldrivers-ibase-arm71-pi.tar.gzhttp://lesav.ru/Qt/raspberry-pi/Если вы решите воспользоваться qt551-arm71-pi-prebuild, то его необходимо распаковать в каталог /.Qt Этот вариант потребует дополнительных ~5Гб на накопителе. Гораздо проще распаковать qt551-arm71-pi.tar.gz в корень файловой системы. В этом архиве уже созданы символьные ссылки на библиотеки и на qmake. После распаковки qmake будет доступен под именем qmake5 или qmake-qt5 Предвижу вопросы: 1. Почему отказался от кроссплатформенной сборки ? - потому, что на выхлопе получается embedded версия Qt 2. Почему в сборке нет WebEngine ? - все дело в том, что минимальный поддерживаемый компилятор должен быть версии 4.7. На малине стоит 4.6. 3. Можно надеяться на регулярный сборки Qt для raspberry ? - все зависит от результата голосования. Если обнаружиться интерес, то почему-бы и не собрать. На днях попробую собрать WebEngine, если будет результат, в этой теме появится уведомление.
|
|
|
12
|
Qt / Вопросы новичков / Re: побайтное представление float
|
: Январь 16, 2015, 08:22
|
Оставлю это тут, уверен, что пригодиться. C++ (Qt) #include <QtEndian> void appendFloat(QByteArray &ba, float fval, bool swap) const { int typeSize = sizeof (float); quint32* pUint32tmp = (quint32*) &(fval); *pUint32tmp = (swap)? qbswap<quint32>(*pUint32tmp) : *pUint32tmp; for(int i=0; i < typeSize; ++i) { quint8 b = (*pUint32tmp >> i*8) & 0xFF; ba.append(b); } }
|
|
|
13
|
Qt / Кладовая готовых решений / Тестовый вывод всех переменных
|
: Декабрь 16, 2014, 03:32
|
QMake Тестовый вывод всех переменных Код qmake .pri Работает в Qt5, т.к. в Qt4 недоступна $$enumerate_vars() VARS = $$enumerate_vars() # Убрать переменные, которые начинаются на QT. QT_INTERNAL_VARS = $$find(VARS, QT\\.) VARS -= $$QT_INTERNAL_VARS
# Убрать переменные, которые начинаются на .QMAKE QT_INTERNAL_VARS = $$find(VARS, \\.QMAKE) VARS -= $$QT_INTERNAL_VARS
# Убрать QMAKE_INTERNAL_INCLUDED_FILES, т.к. в ней много гуталина VARS -= QMAKE_INTERNAL_INCLUDED_FILES VARS -= QMAKE_INTERNAL_INCLUDED_FEATURES #------------------------------------------------- # небольшая сортировка SORT_STR=. _ 0 1 2 3 4 5 6 7 8 9 \ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z \ a b c d e f g h i j k l m n o p q r s t u v w x y z
defineReplace(sort) { _VARS = $$1 _BEGIN = $$2 for(_CHAR, SORT_STR) { _FIND_VARS = $$find(_VARS, ^$${_BEGIN}[$${_CHAR}]) _VARS -= $$_FIND_VARS _VARS += $$_FIND_VARS } unset(_CHAR) unset(_BEGIN) unset(_FIND_VARS) return($$_VARS) }
VARS = $$sort($$VARS) VARS = $$sort($$VARS, QT) VARS = $$sort($$VARS, QT_) VARS = $$sort($$VARS, QMAKE) VARS = $$sort($$VARS, QMAKE_) #------------------------------------------------- # Вывод в лог for(var, VARS) { eval(val=\$\$$${var}) message($$var=$$val) } Результат: Project MESSAGE: _PRO_FILE_=C:/Proj/features/features.pro Project MESSAGE: _PRO_FILE_PWD_=C:/Proj/features Project MESSAGE: _DATE_=Вт дек 16 03:27:44 2014 Project MESSAGE: _QMAKE_CACHE_=C:/Proj/build-features-qt540_msvc2010-Release/.qmake.cache Project MESSAGE: CODECFORTR=UTF-8 Project MESSAGE: CONFIG=lex yacc exceptions depend_includepath testcase_targets import_plugins import_qpa_plugin rtti_off incremental_off windows qt warn_on release link_prl incremental flat precompile_header autogen_precompile_source embed_manifest_dll embed_manifest_exe copy_dir_files release shared rtti no_plugin_manifest qpa win32 msvc release ordered silent Project MESSAGE: DEFINES=UNICODE WIN32 Project MESSAGE: DIR_SEPARATOR=\ Project MESSAGE: DIRLIST_SEPARATOR=; Project MESSAGE: FILE_M=_minqtversion.prf Project MESSAGE: MIN_QT_VERSION=5.0.0 Project MESSAGE: MAKEFILE_GENERATOR=MSBUILD Project MESSAGE: MSVC_VER=10.0 Project MESSAGE: OUT_PWD=C:/Proj/build-features-qt540_msvc2010-Release Project MESSAGE: PWD=C:/Proj/features Project MESSAGE: QT=core gui Project MESSAGE: SUBDIRS=prj_Service prj_Gui prj_fb_ipp prj_plugins prj_translations Project MESSAGE: TEMPLATE=subdirs Project MESSAGE: TARGET=features Project MESSAGE: TRANSLATIONS=C:/Proj/features/translations/features_ru.ts Project MESSAGE: VCPROJ_EXTENSION=.vcxproj Project MESSAGE: VCSOLUTION_EXTENSION=.sln Project MESSAGE: VCPROJ_KEYWORD=Qt4VSv1.0 Project MESSAGE: dir= Project MESSAGE: d= Project MESSAGE: mod= Project MESSAGE: prj_fb_ipp.subdir=drivers/sql/fb_ipp Project MESSAGE: prj_Dbg.subdir=prj/Dbg Project MESSAGE: prj_Daemon.subdir=prj/Daemon Project MESSAGE: prj_Service.subdir=prj/Service Project MESSAGE: prj_Gui.subdir=prj/Gui Project MESSAGE: prj_Console.subdir=prj/Console Project MESSAGE: prj_translations.subdir=translations Project MESSAGE: prj_plugins.subdir=plugins Project MESSAGE: QT_ARCH=i386 Project MESSAGE: QT_CONFIG=minimal-config small-config medium-config large-config full-config debug_and_release build_all debug release shared zlib icu png freetype harfbuzz build_all accessibility opengl ssl openssl audio-backend wmf-backend native-gestures qpa concurrent Project MESSAGE: QT_MINOR_VERSION=4 Project MESSAGE: QT_MAJOR_VERSION=5 Project MESSAGE: QT_MODULES=axbase axcontainer axserver bluetooth bootstrap clucene concurrent core declarative designer designercomponents enginio gui help location multimedia multimediawidgets network nfc opengl openglextensions platformsupport positioning printsupport qml qmldevtools qmltest qtmultimediaquicktools quick quickparticles quickwidgets script scripttools sensors serialport sql svg testlib uitools webchannel webkit webkitwidgets websockets webview widgets winextras xml xmlpatterns Project MESSAGE: QT_PLUGIN.qsqlibase.EXTENDS= Project MESSAGE: QT_PLUGIN.qsqlibase.PATH=/plugins Project MESSAGE: QT_PLUGIN.qsqlibase.TYPE=sqldrivers Project MESSAGE: QT_PLUGIN.qsqlibase.CLASS_NAME=QIBaseDriverPlugin Project MESSAGE: QT_PLUGINS=qsqlibase Project MESSAGE: QT_PATCH_VERSION=0 Project MESSAGE: QT_VERSION=5.4.0 Project MESSAGE: QMAKEFEATURES=C:/Proj/features Project MESSAGE: QMAKESPEC=E:/QT_WORK_DIR/qt540-msvc2010/5.4/msvc2010_opengl/mkspecs/win32-msvc2010 Project MESSAGE: QMAKE_CFLAGS_SSE4_1=-arch:SSE2 Project MESSAGE: QMAKE_CFLAGS_SSE4_2=-arch:SSE2 Project MESSAGE: QMAKE_CFLAGS_MP=-MP Project MESSAGE: QMAKE_CXXFLAGS_RTTI_ON=-GR Project MESSAGE: QMAKE_CFLAGS_SSE2=-arch:SSE2 Project MESSAGE: QMAKE_CFLAGS_SSE3=-arch:SSE2 Project MESSAGE: QMAKE_CXXFLAGS_EXCEPTIONS_ON=-EHsc Project MESSAGE: QMAKE_CFLAGS=-nologo -Zm200 -Zc:wchar_t Project MESSAGE: QMAKE_CXXFLAGS_STL_ON=-EHsc Project MESSAGE: QMAKE_COMPILER=msvc Project MESSAGE: QMAKE_CFLAGS_AVX2=-arch:AVX Project MESSAGE: QMAKE_CFLAGS_DEBUG=-Zi -MDd Project MESSAGE: QMAKE_CXXFLAGS_EXCEPTIONS_OFF= Project MESSAGE: QMAKE_CFLAGS_YACC= Project MESSAGE: QMAKE_CXXFLAGS_STL_OFF= Project MESSAGE: QMAKE_CXXFLAGS_DEBUG=-Zi -MDd Project MESSAGE: QMAKE_COPY_DIR=xcopy /s /q /y /i Project MESSAGE: QMAKE_CFLAGS_RELEASE=-O2 -MD Project MESSAGE: QMAKE_CFLAGS_WARN_ON=-W3 Project MESSAGE: QMAKE_CXXFLAGS_WARN_OFF=-W0 Project MESSAGE: QMAKE_CFLAGS_LTCG=-GL Project MESSAGE: QMAKE_CXXFLAGS_MP=-MP Project MESSAGE: QMAKE_CHK_DIR_EXISTS=if not exist Project MESSAGE: QMAKE_CXXFLAGS_RELEASE=-O2 -MD Project MESSAGE: QMAKE_CFLAGS_SSSE3=-arch:SSE2 Project MESSAGE: QMAKE_CXXFLAGS_RTTI_OFF= Project MESSAGE: QMAKE_CFLAGS_WARN_OFF=-W0 Project MESSAGE: QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO=-O2 -MD -Zi Project MESSAGE: QMAKE_CC=cl Project MESSAGE: QMAKE_COPY=copy /y Project MESSAGE: QMAKE_CXXFLAGS_YACC= Project MESSAGE: QMAKE_COMPILER_DEFINES=_MSC_VER=1600 _WIN32 Project MESSAGE: QMAKE_CPP_MOD_MOC= Project MESSAGE: QMAKE_CXXFLAGS_WARN_ON=-W3 -w34100 -w34189 Project MESSAGE: QMAKE_CFLAGS_AVX=-arch:AVX Project MESSAGE: QMAKE_CHK_EXISTS=if not exist %1 Project MESSAGE: QMAKE_CXX=cl Project MESSAGE: QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO=-O2 -MD -Zi Project MESSAGE: QMAKE_CXXFLAGS=-nologo -Zm200 -Zc:wchar_t Project MESSAGE: QMAKE_CXXFLAGS_LTCG=-GL Project MESSAGE: QMAKE_DIR_REPLACE=OBJECTS_DIR MOC_DIR RCC_DIR PRECOMPILED_DIR DESTDIR Project MESSAGE: QMAKE_DEL_FILE=del Project MESSAGE: QMAKE_DEL_DIR=rmdir Project MESSAGE: QMAKE_DIRLIST_SEP=; Project MESSAGE: QMAKE_DIR_SEP=\ Project MESSAGE: QMAKE_EXTENSION_STATICLIB=lib Project MESSAGE: QMAKE_EXT_PKGCONFIG=.pc Project MESSAGE: QMAKE_EXT_OBJ=.obj Project MESSAGE: QMAKE_EXT_YACC=.y Project MESSAGE: QMAKE_EXT_CPP=.cpp .cc .cxx Project MESSAGE: QMAKE_EXT_H_MOC=.cpp Project MESSAGE: QMAKE_EXT_UI=.ui Project MESSAGE: QMAKE_EXT_LEX=.l Project MESSAGE: QMAKE_EXT_CPP_MOC=.moc Project MESSAGE: QMAKE_EXT_H=.h .hpp .hh .hxx Project MESSAGE: QMAKE_EXT_C=.c Project MESSAGE: QMAKE_EXT_RES=.res Project MESSAGE: QMAKE_EXT_LIBTOOL=.la Project MESSAGE: QMAKE_EXT_JS=.js Project MESSAGE: QMAKE_EXT_PRL=.prl Project MESSAGE: QMAKE_HOST.arch=x86 Project MESSAGE: QMAKE_HOST.version=144 Project MESSAGE: QMAKE_HOST.os=Windows Project MESSAGE: QMAKE_H_MOD_MOC=moc_ Project MESSAGE: QMAKE_HOST.name=LESAV Project MESSAGE: QMAKE_HOST.version_string=Unknown Project MESSAGE: QMAKE_IDL=midl Project MESSAGE: QMAKE_INCDIR= Project MESSAGE: QMAKE_LIBS_CORE=kernel32.lib user32.lib shell32.lib uuid.lib ole32.lib advapi32.lib ws2_32.lib Project MESSAGE: QMAKE_LIBS_COMPAT=advapi32.lib shell32.lib comdlg32.lib user32.lib gdi32.lib ws2_32.lib Project MESSAGE: QMAKE_LFLAGS_RELEASE_WITH_DEBUGINFO=/DEBUG /OPT:REF /INCREMENTAL:NO Project MESSAGE: QMAKE_LFLAGS_DLL=/DLL Project MESSAGE: QMAKE_LIBS_GUI=gdi32.lib comdlg32.lib oleaut32.lib imm32.lib winmm.lib ws2_32.lib ole32.lib user32.lib advapi32.lib Project MESSAGE: QMAKE_LIBS_OPENGL_ES2_DEBUG=libEGLd.lib libGLESv2d.lib gdi32.lib user32.lib Project MESSAGE: QMAKE_LFLAGS_LTCG=/LTCG Project MESSAGE: QMAKE_LFLAGS=/NOLOGO /DYNAMICBASE /NXCOMPAT Project MESSAGE: QMAKE_LINK=link Project MESSAGE: QMAKE_LIBS_OPENGL_ES2=libEGL.lib libGLESv2.lib gdi32.lib user32.lib Project MESSAGE: QMAKE_LFLAGS_CONSOLE=/SUBSYSTEM:CONSOLE Project MESSAGE: QMAKE_LFLAGS_WINDOWS=/SUBSYSTEM:WINDOWS Project MESSAGE: QMAKE_LEXFLAGS= Project MESSAGE: QMAKE_LFLAGS_DEBUG=/DEBUG Project MESSAGE: QMAKE_LIBS_OPENGL=glu32.lib opengl32.lib gdi32.lib user32.lib Project MESSAGE: QMAKE_LIBS_QT_ENTRY=-lqtmain Project MESSAGE: QMAKE_LFLAGS_EXE="/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" Project MESSAGE: QMAKE_LFLAGS_RELEASE=/INCREMENTAL:NO Project MESSAGE: QMAKE_LIB=lib /NOLOGO Project MESSAGE: QMAKE_LEX=flex Project MESSAGE: QMAKE_LN_SHLIB=copy /y Project MESSAGE: QMAKE_LIBS_NETWORK=ws2_32.lib Project MESSAGE: QMAKE_MOD_YACC=_yacc Project MESSAGE: QMAKE_MKDIR=mkdir Project MESSAGE: QMAKE_MOD_LEX=_lex Project MESSAGE: QMAKE_MKDIR_CMD=if not exist %1 mkdir %1 & if not exist %1 exit 1 Project MESSAGE: QMAKE_MOVE=move Project MESSAGE: QMAKE_PLATFORM=win32 Project MESSAGE: QMAKE_QT_CONFIG=E:/QT_WORK_DIR/qt540-msvc2010/5.4/msvc2010_opengl/mkspecs/qconfig.pri Project MESSAGE: QMAKE_QMAKE=E:/QT_WORK_DIR/qt540-msvc2010/5.4/msvc2010_opengl/bin/qmake.exe Project MESSAGE: QMAKE_RUN_CC= -c -Fo$obj $src Project MESSAGE: QMAKE_RC=rc Project MESSAGE: QMAKE_RUN_CXX= -c -Fo$obj $src Project MESSAGE: QMAKE_RUN_CC_IMP= -c -Fo$@ $< Project MESSAGE: QMAKE_RUN_CC_IMP_BATCH= -c -Fo$@ @<< Project MESSAGE: QMAKE_RUN_CXX_IMP= -c -Fo$@ $< Project MESSAGE: QMAKE_RUN_CXX_IMP_BATCH= -c -Fo$@ @<< Project MESSAGE: QMAKE_SYMBOLIC_LINK=copy /y Project MESSAGE: QMAKE_SH= Project MESSAGE: QMAKE_STREAM_EDITOR= -install sed Project MESSAGE: QMAKE_TARGET.arch=x86 Project MESSAGE: QMAKE_YACC=byacc Project MESSAGE: QMAKE_YACCFLAGS=-d Project MESSAGE: QMAKE_ZIP=zip -r -9
|
|
|
14
|
Qt / Кладовая готовых решений / Расширение функционала QMAKE
|
: Декабрь 16, 2014, 03:21
|
Как-то нужно было отсортировать значения в переменной Код qmake .pri Работает в Qt4/Qt5 # Сортировка SORT_STR= . _ 0 1 2 3 4 5 6 7 8 9 \ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z \ a b c d e f g h i j k l m n o p q r s t u v w x y z
defineReplace(sort) { _VARS = $$1 # Второй аргумент выступает в качестве префикса for(_CHAR, SORT_STR) { _FIND_VARS = $$find(_VARS, ^$${2}[$${_CHAR}]) _VARS -= $$_FIND_VARS _VARS += $$_FIND_VARS } return($$_VARS) }# Использование VAR = aaa Aaa abc Abs 1b a1 a2 1a 2b 2a VAR = $$sort($$VAR) #-- Результат # 1a 1b 2a 2b Aaa Abs aaa abc a1 a2 xxx zzz message($$VAR)
|
|
|
15
|
Qt / Вопросы новичков / Re: Приложение "Информация о системе"
|
: Декабрь 07, 2014, 10:19
|
Консоль Windows: Все сообщения выводятся в кодировке cp866 Если вы пользуетесь "продвинутым" текстовым редактором notepad.exe, то вам поможет выбор шрифта terminal В Qt я бы порекомендовал использовать QProcess, захватить stdout запускаемого приложения. Затем пропустить его через конвертер и получить из него заветный UTF-8. вот что вас натолкнет к правильным решениям QProcessQTextStream::setCodec("CP866");
|
|
|
|
|