Articles of qt

编译Windows的静态TagLib 1.6.3库

我正在编译和使用TagLib 1.6.3在我的Qt项目中超级困难。 我尝试了所有我能想到的。 TagLib声称,它是通过CMake支持,但我没有任何运气。 此外,我对我甚至需要的Qt库有什么样的文件感到困惑! 我build立了* .a文件,* .lib和* .dll。 从我了解到目前为止…我相信,因为我在Windows * .lib工作是我想要的。 无论我做什么,当我尝试编译我的Qt项目时,总会遇到“尝试使用的任何TagLib函数”的“未定义引用”。 我已经尝试过MinGW32,MSYS,Visual Studio 2008,甚至在Linux上进行交叉编译。 一切都没有了。 对我来说更没有意义的是,如果我在Mac上用Qt编译相同的TagLib源代码(g ++,我认为?),它工作的很好! 在我的Windows编译过程中,我不得不出错。 大概30(小时和上下)小时,我一直在我的桌子上盯着我的脸,试图弄清楚这一点。 由于Qt使用minGW我必须用相同的编译器编译TagLib吗? 如果我编译* .lib与Visual Studio是不兼容的? * .a库甚至可以在Windows中使用? (假设minGW) 我仍然试图处理这个C​​ ++的东西,但在阅读了无数的论坛主题和其他问题之后,我仍然不了了之。 这是我现在在CMake一直在使用的… cmake -G "MinGW Makefiles" -DENABLE_STATIC=ON -DHAVE_ZLIB=0 -DWITH_MP4=1 -DMAKE_TAGLIB_LIB=1 cmake –build ./ 这会生成大小为〜2MB的单个* .a文件。 Mac上的工作库为〜3MB,Visual Studio的* .lib在Release模式下为〜4MB。 请有人救我从这个C + +跨平台命令行疯狂,因为我在我的智慧结束。 我甚至可能会付钱给你编译一些%!$#库。 谢谢。

使用QProcessEnvironment更改cmd.exe的PATH环境variables

我想从Qt应用程序启动具有特定path的cmd.exe。 我在QProcessEnvironment中插入“path”并将该环境设置为QProcess。 然后我开始读取“cmd”。 在命令提示符下,path与调用应用程序的path相同,而不是我刚刚设置的path。 我错过了什么? 我在windows 8.1.s上使用了Qt 5.2.0与mingw和Qt-creator 3.0.0 QProcess process(this); QProcessEnvironment env = QProcessEnvironment::systemEnvironment(); env.insert("Path", "MyPath"); process.setProcessEnvironment(env); QStringList args; args << "/D" << "/K" << "dir"; process.startDetached("cmd", args);

Qt应用程序和窗口下的图标

我已经创build了一个简单的应用程序图标通过embedded一个标准的Windows资源文件包含一个图标。 不过,我也想在我的主应用程序窗口上使用这个图标。 是否有捷径可寻? 到目前为止,似乎唯一的办法是单独加载一个包含窗口图标的图标,而不是重复使用已经存在的图标。 这似乎是一个可怕的解决scheme。 除此之外,实际图标embedded在我的可执行文件中,我不想分发两次。 有人知道怎么做吗?

Qwindows.dll从来没有find

当我在其他机器上运行我的应用程序时,如果我重命名Qt目录,我得到“此应用程序无法启动,因为它无法find或加载Qt平台插件”窗口“重新安装应用程序可能会解决此问题。 这是包含应用程序的文件夹的布局: app.exe icudt53.dll icuin53.dll icuuc53.dll Qt5Core.dll Qt5Gui.dll Qt5Widgets.dll msvcp110.dll platforms/qwindows.dll 有没有可能强制searchqwindows.dll目录而不是QT目录我的应用程序的目录?

为什么我的Qt 4.5应用程序在Windows下打开控制台窗口?

我一直在Linux下玩Qt Creator 4.5。 我的应用程序在Linux下构build得很好,但如果我在Windows中构build,应用程序始终会在启动时打开控制台窗口。 我可以阻止它这样做吗? 我正在build立使用默认的MinGW设置,也许这​​是相关的。 如果需要的话,我可以使用Visual Studio构build,但是我想先了解发生的事情。 编辑 :我刚刚创build了一个简单的testingGUI应用程序与Windows下的Qt Creator,并没有performance出这种行为。 这种行为是因为在linux下创build项目的方式而发生的,或者是我的应用程序会导致控制台窗口出现。 当我诊断它时会发布详细信息,以防别人帮助其他人。

在Windows下Qt应用程序看起来和感觉本机?

我即将将我的一个Mac应用程序移植到Windows。 Mac应用程序使用苹果的原生Cocoa / Appkit框架的用户界面。 UI是Obj-C代码,核心应用程序function是可移植的C ++代码。 现在,我正在寻找一种将应用程序移植到Windows的方法,并使其看起来像Windows用户的本机。 我的select是微软的MFC和Qt框架。 虽然我确信MFC应用程序具有本机的外观和感觉,但是我从MFC编码框架本身记得的东西太可怕了。 我看了一下Qt,从开发人员的angular度来看。 但是,因为我不是一个Windows用户,我不知道是否Qt应用程序具有本机Windows的外观和感觉。 因此,我的问题是:我可以做(没有很多工作)一个Qt应用程序的行为,看起来像它是用本机Windows框架编写的?

在两个应用程序之间共享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位或任何不同的过程相同?