Articles of qt

在两个应用程序之间共享OpenGL帧缓冲区/渲染缓冲区

比方说,我有一个应用程序女巫负责通过OpenGL库在屏幕上绘制的东西。 为了紧密集成的目的,我想让这个应用程序A完成它的工作,但是在一个FBO中或直接在一个渲染缓冲区中进行渲染,并允许一个应用程序B对这个缓冲区拥有只读访问权来处理屏幕上的显示它作为一个2D纹理)。 看来FBO属于OpenGL上下文,上下文在进程之间是不可共享的。我明白,允许几个进程在同一个上下文中是混乱的是邪恶的。 但在我的具体情况下,我认为这是相当安全的,这是合理的 。 注意: 应用程序A是一个QApplication ,应用程序B是一个native win32 编辑: 渲染大小接近全屏,我想到了一个2048×2048 32bits缓冲区(我现在不使用alpha通道,但为什么不使用后者)。

Qt Widget应用程序“库未注册”错误

我刚刚开始使用Qt,并创build了一个简单的Qt Widgets应用程序。 当我构build并运行应用程序(即使我创build了一个没有新代码的新项目),我收到以下错误消息: (2128)\ OLEAUT32.dll!74445072 :(调用者:7444FE4F)ReturnHr(1)tid(188)8002801D库未注册。 (2128)\ OLEAUT32.dll!74445072:(调用者:7444FE4F)ReturnHr(2)tid(188)8002801D库未注册。 我的Qt安装和Windows都是最新的。 我一直在寻找一个解决scheme,现在几个小时,我找不到任何东西,甚至远程相关的问题在线…有没有其他地方有类似的问题? 更新: 我只是从我的电脑彻底删除Qt,并做了全新的安装,我仍然得到相同的消息。

QStringList QCoreApplication :: arguments() – 什么情况下索引0不是Windows中的应用程序path?

QStringList QCoreApplication::arguments() (Qt)的文档声明: 通常, arguments()。at(0)是程序名,arguments()。at(1)是第一个参数,而arguments()。last()是最后一个参数。 请参阅下面关于Windows的说明。 它进一步阐述: 在Windows上,参数()是从GetCommandLine()的返回值构造而来的。 因此,参数()。at(0)给出的string可能不是Windows上的程序名称,具体取决于应用程序的启动方式。 参考最后一个大胆的部分,我很好奇这种情况适用于什么情况。Qt文档没有解释它也没有GetCommandLine的(WINAPI)文档。

qt应用程序的64位窗口

是否有可能在qt窗口中编译一个64位的可执行文件? 是否与32位或任何不同的过程相同?

Qt堆内存损坏

我正在写一个Qt 4.6应用程序(没有Qtdevise器),当我closures程序时,我从Visual Studio中得到这个错误: Windows已经在Test.exe中触发了一个断点。 这可能是由于堆的损坏,这表明Test.exe或任何它已加载的DLL中的错误。 这也可能是由于用户在Test.exe有焦点时按F12。 输出窗口可能有更多的诊断信息。 这里是源代码: Main.cpp http://pastebin.com/DeUvZSHU TesterWindow.h http://pastebin.com/SEVr8x40 TesterWindow.cpp http://pastebin.com/MYUtZZGw Device.h http://pastebin.com/bXKxVrmW Device.cpp http://pastebin.com/H1kMcRes ExtWiiMote.h http://pastebin.com/uX3HT9Yw ExtWiiMote.cpp http://pastebin.com/p2TKZdHv (你不能编译它,我不能共享使用的库) 怎么了?

cmake非常令人沮丧的问题

我在Windows上有一个令人沮丧的问题。 我已经安装了kde库。 当我试图用cmake编译我的项目。 这一次反复出现 Found Qt-Version 4.7.0 (using C:/Qt/2010.05/qt/bin/qmake.exe) CMake Error at c:/Program Files/KDE/share/apps/cmake/modules/FindPackageHandleStandardArgs.cmake:198 (MESSAGE): Did not find automoc4 (Automoc4Config.cmake, part of kdesupport). (missing: AUTOMOC4_EXECUTABLE) Call Stack (most recent call first): c:/Program Files/KDE/share/apps/cmake/modules/FindAutomoc4.cmake:56 (find_package_handle_standard_args) c:/Program Files/KDE/share/apps/cmake/modules/FindKDE4Internal.cmake:402 (find_package) C:/Program Files/CMake 2.8/share/cmake-2.8/Modules/FindKDE4.cmake:95 (FIND_PACKAGE) CMakeLists.txt:96 (find_package) Configuring incomplete, errors occurred! 那么我是围绕这个问题的networking。 我得到了缺lesskde-win-installer的automoc4文件。 于是我下载了这个文件,并运行了automoc4的cmake,并得到了我放在%KDE_INSTALL%/ bin文件夹中的automoc4.exe。 但运气不在我身边。 再次,我最喜欢的错误火起来。 帮助我!

在Windows上从Qt Creator步入Qt源文件(不是从源码生成的)

我已经下载了为MSVC9 / VS2008构build的Qt4的二进制版本。 我从安装文件安装它,我没有从源代码构build它。 不过,我确实有来源: c:\QtSDK\QtSources\4.8.1\src: 我也有PDB文件位于: c:\QtSDK\Desktop\Qt\4.8.1\msvc2008\lib 所以,如果我同时拥有PDB和源代码,即使我没有从源代码构build,我也应该能够进入源代码。 注意:我已经发现并阅读了一些问题,询问如何进入Qt源代码,但是它们是关于Linux (实际上也是我的),或者它们没有指定是否从源代码编译 (a非常重要的区别)。

Qt错误:未find过程条目

我正在Qt 5.6.1中做一个项目。 当我在Qt Creator中运行它时,它运行完美。 但是当我在文件夹中运行它时,它显示: 程序入口点?0QVariant @@ QAE @ ABVQString @@@ Z不能位于DLL Qt5Core.dll中。 我该如何解决?

如何检测自动隐藏的任务栏是否可见?

此刻我需要检测在C + + / Qt如果一个任务栏,设置为“自动隐藏”是否在屏幕上可见或不。 我已经尝试过下面的解决scheme,但不幸没有成功: 使用uState =(UINT)SHAppBarMessage(ABM_GETSTATE,pabd)检查自动隐藏状态,仅返回是否设置了自动隐藏属性 使用SystemParametersInfo获取工作区(SPI_GETWORKAREA,0,&rectWorkArea,0); 不幸的是,工作区始终是整个屏幕的大小,当任务栏被设置为“自动退出”时,即使它实际上在屏幕上可见 使用SHAppBarMessage获取AppBarData(ABM_GETTASKBARPOS,&abd); 有了这个函数,我可以得到任务栏的大小和坐标,但是总是返回它们,就好像任务栏是可见的,即使它是隐藏的。 所以用这些方法,我不能告诉,是否在任何时候任务栏“自动隐藏”是在给定的时刻在屏幕上可见或不 – : 我将不胜感激任何帮助 :-)

在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 […]