Articles of qt

在Qt中干净地closures一个QSerialPort

我试图closures使用QSerialPort库打开的串行端口,但它挂了一半以上的时间。 我正在开发一个multithreading的应用程序,一个线程负责UI和另一个串行通信。 我正在使用QThread包装类。 void CommThread::run() { serial = new QSerialPort(); serial->setPortName(portname); serial->setBaudRate(QSerialPort::Baud115200); if(!serial->open(QIODevice::ReadWrite)){ qDebug() << "Error opening Serial port within thread"; quit = true; return; }else{ /// \todo handle this exception more gracefully } /// Start our reading loop /// While CommThread::disconnect is not called, this loop will run while(!quit){ comm_mutex->lock(); /// If CommThread::disconnect() is […]

在QTCreator中用MinGW编译c ++和cuda代码

我试图编译简单的CUDA程序(我从编译在Qt Creator在Windows上的CUDA代码的源代码)这是我的.PRO文件: TARGET = Cuda # Define output directories DESTDIR = release OBJECTS_DIR = release/obj CUDA_OBJECTS_DIR = release/cuda # Sourcefiles SOURCES += main.cpp # This makes the .cu files appear in your project OTHER_FILES += vectorAddition.cu # CUDA settings <– may change depending on your system CUDA_SOURCES += vectorAddition.cu CUDA_SDK = "C:/Cuda/CudaSamples" # Path to […]

删除msvc DLL依赖运行qt应用程序

如何删除msvc dlls(例如:msvcr100.dll)依赖运行qt appliation? 我已经开发了一个qt应用程序在dveloper机器上运行得很好,但无法在任何其他机器上运行给出错误消息“程序无法启动,因为您的计算机缺lessMSVCR100.dll”。 我可以通过复制应用程序文件夹中的文件来解决这个错误,但我不想复制,而是我想静态链接或其他方式来删除该依赖项。 提前致谢

在高分辨率Windows平台上自动重新调整应用程序的大小?

我正在写一个需要在高分辨率Windows(192dpi而不是96dpi)上运行的Qt应用程序。 不幸的是,Qt框架还没有支持高DPI(至less在Windows上),所以我的应用程序和它的所有元素看起来应该是它的一半。 有什么办法强制/模拟Windows自动升级这些应用程序?

在Linux上使用Qt创build可执行文件

是否有可能在Linux上为Linux和Windows使用相同的Qt代码在Eclipse上创build一个可执行文件? 还是有必要在我的Linux机器上安装Qt Creator?

Qt(在Windows上)将权限级别设置为“requireAdministrator”

我正在使用Qt Creator,努力使.exe文件以pipe理员身份运行。 通过在线阅读所有的解决scheme,我试图把这一行放在我的.pro文件中: QMAKE_LFLAGS += /MANIFESTUAC:"level='requireAdministrator' uiAccess='false'" 但仍然当我检查我的.exe (使用记事本)它包含: <requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel> 有人可以告诉我,如何添加requireAdministrator ? 临时解决scheme:直到现在我找不到一个解决scheme,所以我做了一个临时的黑客攻击。 我做了一个名为“LaunchAnother.exe”的.exe文件,它将使用以下代码启动我的“main.exe”: SHELLEXECUTEINFO shExInfo = {0}; shExInfo.cbSize = sizeof(shExInfo); shExInfo.fMask = SEE_MASK_NOCLOSEPROCESS; shExInfo.hwnd = 0; shExInfo.lpVerb = _T("runas"); // Operation to perform shExInfo.lpFile = _T("main.exe"); // Application to start shExInfo.lpParameters = ""; // Additional parameters shExInfo.lpDirectory = 0; shExInfo.nShow = SW_SHOW; […]

Qt5应用程序部署qwindows.dllsearchpath顺序

我正在将我们的应用程序与所需的DLL部署在同一个文件夹中。 加上平台文件夹中的qwindows.dll。 这真的很好,也没有任何Qt安装机器。 直到昨天,当我更新我的Qt到5.5.1。 现在所有使用Qt 5.5.0构build的应用程序停止工作,并显示出众的错误:“无法find或加载Qt平台插件的窗口”。 当我将我的Qt文件夹(C:\ Qt)重命名为其他内容时,所有事情都可以再次运行。 进一步调查与依赖沃克表明,应用程序的确看着我的C:\ Qt文件夹来find平台的DLL。 但他们发现一个更新/不同的版本,并抛出错误。 GetProcAddress(0xxxx [ADVAPI32.DLL], "SystemFunction036") called from "MSVCR120.DLL" at address 0xxxx and returned 0x00007FFB269C1050. LoadLibraryW("C:\Qt\5.5\msvc2013_64\plugins\platforms\qwindows.dll") called from "QT5CORE.DLL" at address 0xxxx. Loaded "QWINDOWS.DLL" at address 0xxxx. Successfully hooked module. Loaded "WINMM.DLL" at address 0xxxx. Successfully hooked module. Loaded "OLEAUT32.DLL" at address 0xxxx. Successfully hooked module. Loaded […]

#include <windows.h>会导致很多语法错误

我的程序使用Qt和OpenGL。 它在Linux和Mac下正确编译。 在Windows上编译时,我需要#include windows.h才能使用OpenGL,代码如下, #if defined(_WIN32) || defined(_WIN64) || defined(WIN32) || defined(WIN64) #include <windows.h> #endif #ifdef __APPLE__ #include <OpenGL/glu.h> #include <GLUT/glut.h> #else #include <GL/glu.h> #include <GL/glut.h> #endif 但是,有很多错误消息 C:\Program Files (x86)\Windows Kits\8.1\include\shared\rpcdcep.h(167) : error C2146: syntax error : missing ')' before identifier 'PRPC_MESSAGE' C:\Program Files (x86)\Windows Kits\8.1\include\shared\rpcdcep.h(167) : error C2165: 'left-side modifier' : cannot modify […]

Qt – 如何获得编译Mysql驱动程序

我想在Qt中创build一个MySql相关的应用程序。 一段时间后,我才知道我的共享版本没有MySql驱动程序(默认情况下)。 任何人都可以说如何获得它(共享和静态)。 注意:我在Windows平台上使用Qt-4.7.2 编辑:感谢“vrince”。 这是他展示的方式=>我做的。 1)Open qt-command prompt 2)Goto (Qt's installation path)\qt\src\plugins\sqldrivers\mysql in my case: D:\TempInstallationFolder\Qt\dynamic-New\qt\src\plugins\sqldrivers\mysql 3)qmake 4)make or mingw32-make (provided your PATH variable contains "(Qt installation path)\mingw\bin") ("make" should work if you didn't mess up with path variables. It in turn invokes mingw32-make. I messed up this a little bit. So I invoked […]

作为服务运行时,QtService应用程序无法连接到系统总线

我已经重新编译了用于Windows的集成dbus的 Qt 。 此外,我已经实现了一个QtService应用程序,它在系统总线上注册一个服务和一个对象,如下所示: QDBusConnection::systemBus().registerService("com.mycompany.Configuration"); QDBusConnection::systemBus().registerObject("/com/mycompany/Configuration/MySetting", myObject); 现在,当我使用-e参数(作为常规应用程序运行)运行服务应用程序时,它工作正常,并且dbus-monitor和qdbus –system显示注册的服务和对象。 但是,当我将应用程序作为Windows服务运行时,它不会在系统总线上注册任何内容。 debugging服务给我错误消息 没有连接到D-Bus服务器 当调用registerService(…)和registerObject(…) 。 我已经设置了环境variables: DBUS_SYSTEM_BUS_ADDRESS = autolaunch: DBUS_SYSTEM_BUS_DEFAULT_ADDRESS = autolaunch: 我的system.conf文件: <!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-Bus Bus Configuration 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd"> <busconfig> <type>system</type> <fork/> <pidfile>/pid</pidfile> <listen>autolaunch:</listen> <policy context="default"> <allow user="*"/> <deny own="*"/> <deny send_type="method_call"/> <allow send_type="signal"/> <allow send_requested_reply="true" send_type="method_return"/> <allow send_requested_reply="true" send_type="error"/> <allow receive_type="method_call"/> <allow […]