Qt Creator下的Libqxt

Dar*_*añé 4 qt qt4 qt-creator

我想创建一个需要全局快捷方式的小应用程序.所以,我已经下载了当前版本的libqxt(0.5.1)并在Qt Creator中作为项目打开.

Libqxt以这种方式编译没有问题,所以我认为在项目的依赖项中添加它会在构建中自动添加,就像Eclipse与JAR库一样(我知道它们是不同的IDE但它似乎是常见的其中的特色).

怎么了?Qt Creator在我的项目之前在需要时编译qxt,但是当我想要包含它的标题时,Qt Creator会一直警告我它找不到它们.

可能我错过了正确的标题名称(我试过qxt文档中显示的标题:http://doc.libqxt.org/0.5.0/classQxtGlobalShortcut.html )

顺便说一句,我查看了全局快捷方式的代码,我想我可以将其删除并在我的应用程序中使用它,我将信任qxt团队并打开我的应用程序的代码.

小智 11

来自文档

将以下行添加到.pro文件中:

 CONFIG  += qxt
 QXT     += core gui
Run Code Online (Sandbox Code Playgroud)

注意:在Linux上构建Qxt时,不要忘记这样做,sudo make install否则这个小小的魔法可能无法正常工作.


prz*_*moc 6

Qt Creator不知道如何向项目公开不同的库.这是开发人员的职责.在构建主项目之前,依赖性确保仅已经构建了所提到的项目.

您真正担心的是没有正确安装就使用Qxt.假设configure已经运行并且libqxt已经构建(使用Qt Creator或通过qmake+ 手动make),我的解决方案是将以下代码段(具有明显的QXT_DIR自定义)添加到.pro文件:

QXT_DIR = $${IN_PWD}/../libqxt-0.5.1
LIBS += -L$${QXT_DIR}/deploy/libs
INCLUDEPATH += $${QXT_DIR}/deploy/include
for(module, QXT) {
 MODNAME = $$upper($$replace(module, "(.).*", "\1"))$$replace(module, "^.", "")
 INCLUDEPATH += $${QXT_DIR}/deploy/include/Qxt$${MODNAME}
 INCLUDEPATH += $${QXT_DIR}/src/$${module}
 win32:CONFIG(debug, debug|release):MODNAME = $$join(MODNAME,,,d)
 LIBS += -lQxt$${MODNAME}
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,我不确定它是否适用于复杂的项目.

默认情况下,Qxt是在发布模式下构建的,但Qt Creator使用调试模式,它会导致项目的二进制文件损坏,具体取决于Windows下的Qxt.您必须将项目切换到发布模式或在调试模式下构建Qxt(运行configure -debug并重建Qxt).

最后一件事:在Windows中,即使您成功构建了项目,也无法从Qt Creator运行您的项目.你必须拷贝所需Qwt*.dll文件(使用d从-suffix版本,如果你在调试模式是)libqxt-0.5.1/deploy/libsyour_project/(release|debug)目录中.