2017-03-07 77 views
0

對不起,我的英語不好。 如何在qt中使用kde庫? 我搜索和谷歌這個,但沒有很好的答案。 CPP文件如何在qt中使用kde庫?

#include <QCoreApplication> 
#include <QDebug> 
#include <KDE/KWindowSystem> 

int main(int argc, char *argv[]) 
{ 
    QCoreApplication a(argc, argv); 
    qDebug() << "Hello World"; 
// bool wayland = KWindowSystem::isPlatformWayland(); 
// qDebug() << wayland; 
// KWindowSystem::self(); 
    foreach (const auto &wid, KWindowSystem::self()->stackingOrder())  { 
     qDebug() << "Hi"; 
    } 
    return a.exec(); 
} 

親文件

###################################################################### 
# Automatically generated by qmake (3.1) Tue Mar 7 02:09:59 2017 
###################################################################### 

TEMPLATE = app 
TARGET = firstqt 
INCLUDEPATH += /usr/include/KF5/KWindowSystem . 

# Input 
SOURCES += main.cpp 
LIBS += -lkdeui 

我得到錯誤: 魚:「./firstqt」通過信號SIGSEGV(地址邊界錯誤)

感謝提前終止。

+0

我再次搜索,發現LIBS + = -lkdeui是kde4,它必須是LIBS + = -lKF5WindowSystem –

回答

0

我再次搜索,我發現,LIBS + = -lkdeui是KDE4和它必須是LIBS + = -lKF5WindowSystem 現在我的代碼是 的main.cpp

#include <QCoreApplication> 
#include <KWindowSystem> 
#include <QDebug> 

// using KWallet::Wallet; 

int main(int argc, char *argv[]) 
{ 
    QCoreApplication a(argc, argv); 

    for(int i = 0; i < KWindowSystem::stackingOrder().count(); i++) 
    { 
     qDebug() << "Hi"; 
    } 
    return a.exec(); 
} 

和main.pro是

TARGET = wallet 
TEMPLATE = app 
SOURCES += main.cpp 
LIBS += -lKF5WindowSystem 
INCLUDEPATH += /usr/include/KF5/KWindowSystem \ 

和kwindowsystem認可,但這隻能打印一個警告:

org.kde.kwindowsystem:找不到任何平臺的插件

現在是什麼問題? 謝謝。