WindowsからのqutIMプラグインの開発-クイックスタート

開発を開始する従来の方法は、すべてのソースをダウンロードしてコンパイルすることでした。WindowsとUbuntuの命令のサイズをすばやく比較しても、このタスクは非常に難しいことがわかります。 幸いなことに、この方法はより簡単かつ迅速に登場しました。



これを行うには、通常のqutIM WindowsインストーラーであるQtSDKcmakeが必要です。

ステップ1-QtSDKとcmakeをインストールする




微妙な点はありません。額にデスクトップQt(minGW)を置いてcmakeをインストールするだけです。PATH変数でqtvars.cmdに追加する必要があるのは、cmakeへのパスだけです



ステップ2-qutIMをインストールする




Program Filesではなく、別のフォルダ、たとえばC:\ developer \ qutim \ distに置くのが最善です。 インストーラーには、リンクに必要なすべての必要なヘッダーファイルとオブジェクトファイルが含まれており、share / docディレクトリにはhtmlドキュメントがあります。より正確には、そのアウトラインでさえ、完全なAPIドキュメントはまだ存在しません。



ステップ3-プラグインのCMakeLists.txtを作成する




CMakeLists.txtのサンプルビューは次のようになります。



cmake_minimum_required (VERSION 2.6 FATAL_ERROR)

if( COMMAND cmake_policy )

cmake_policy( SET CMP0003 NEW )

endif(COMMAND cmake_policy )

project( Plugins )

set(QT_MIN_VERSION "4.6.0")



set(QUTIM_PATH "" CACHE FILEPATH "Path to qutim distro")

set(CMAKE_INSTALL_PREFIX ${QUTIM_PATH})



LIST (APPEND CMAKE_MODULE_PATH "cmake")

LIST (APPEND CMAKE_MODULE_PATH "${QUTIM_PATH}/share/cmake/Modules")

LIST (APPEND CMAKE_PREFIX_PATH "${QUTIM_PATH}")



INCLUDE (MacroEnsureVersion)

find_package(Qt4 COMPONENTS QtCore QtGui)

find_package(QutIM REQUIRED)



include_directories(include)

add_subdirectory(src)









srcディレクトリに、CMakeLists.txtに組み込みプラグインの説明を含める必要があります

find_library( SIMPLECONTACTLIST_LIBRARIES simplecontactlist PATHS ${QUTIM_PATH}/lib )

message (${SIMPLECONTACTLIST_LIBRARIES})



qutim_add_plugin(simplecontactlistwidget

EXTENSION

EXTENSION_HEADER ${CMAKE_CURRENT_SOURCE_DIR}/sevenwidget.h

EXTENSION_CLASS Core::SimpleContactList::SimpleWidget

DISPLAY_NAME "Seven"

SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}

DESCRIPTION "Windows seven specific implementation with button's in caption"

LINK_LIBRARIES ${SIMPLECONTACTLIST_LIBRARIES}

)









作成するプラグインはsimplecontactlist.aにリンクするので、見つける必要があることをcmakeに伝える必要があります。 プラグインは拡張機能であるため、拡張機能の説明として使用されるクラス名を指定し、ヘッダーファイルへのパスを指定する必要があります。 EXTENSIONの代わりにSUBPLUGINを作成する場合、qutim_sdk_0_3 :: Pluginを継承するクラスを作成し、QUTIM_EXPORT_PLUGIN経由でエクスポートする必要があります。 最も簡単な方法は、他のプラグインで実装を覗き見ることです。



ステップ4-プラグインの作成




連絡先リストのヘッダーにボタンを描画するプラグインを作成します。 simplecontactlistはパブリックAPIの一部ではないため、ヘッダーファイルはインストーラーに含まれないため、必要なファイルを手動でインクルードにコピーするだけです。 ただし、APIはいつでも変更できることを覚えておく必要があります。



コンタクティフォームを作成するには、AbstractContactListWidgetインターフェイスから継承し、AddButtonメソッドを実装する必要があります。AddButtonメソッドは、ボタンをウィンドウタイトルRemoveButtonに追加し、それらを削除します。 さらに、連絡先モデルへのポインターとレンダリングのデリゲートを取得する必要があります。これらはすべてソースアーカイブで表示するか、カブlabsからgit経由でダウンロードできます。

m_model = ServiceManager::getByName<AbstractContactModel*>( "ContactModel" );

Q_ASSERT(m_model);

m_view = new TreeView(m_model, this );

layout->addWidget(m_view);

m_view->setItemDelegate(ServiceManager::getByName<QAbstractItemDelegate*>( "ContactDelegate" ));




* This source code was highlighted with Source Code Highlighter .









m_model = ServiceManager::getByName<AbstractContactModel*>( "ContactModel" );

Q_ASSERT(m_model);

m_view = new TreeView(m_model, this );

layout->addWidget(m_view);

m_view->setItemDelegate(ServiceManager::getByName<QAbstractItemDelegate*>( "ContactDelegate" ));




* This source code was highlighted with Source Code Highlighter .









m_model = ServiceManager::getByName<AbstractContactModel*>( "ContactModel" );

Q_ASSERT(m_model);

m_view = new TreeView(m_model, this );

layout->addWidget(m_view);

m_view->setItemDelegate(ServiceManager::getByName<QAbstractItemDelegate*>( "ContactDelegate" ));




* This source code was highlighted with Source Code Highlighter .














ステップ5-ビルド




最初のCMakeLists.txtビルドディレクトリを含むディレクトリの横で、Qtコマンドプロンプトを作成し、そこに移動して次のようなコマンドを実行します。



H:\develop\windows\labs\build>cmake ..\sevenlist -DCMAKE_BUILD_TYPE=Release -DQUTIM_PATH=H:\develop\qutim\dist -G"MinGW Makefiles"









結果は次のようになります。

-- The C compiler identification is GNU

-- The CXX compiler identification is GNU

-- Check for working C compiler: H:/apps/QtCreator/mingw/bin/gcc.exe

-- Check for working C compiler: H:/apps/QtCreator/mingw/bin/gcc.exe -- works

-- Detecting C compiler ABI info

-- Detecting C compiler ABI info - done

-- Check for working CXX compiler: H:/apps/QtCreator/mingw/bin/g++.exe

-- Check for working CXX compiler: H:/apps/QtCreator/mingw/bin/g++.exe -- works

-- Detecting CXX compiler ABI info

-- Detecting CXX compiler ABI info - done

-- Looking for Q_WS_X11

-- Looking for Q_WS_X11 - not found.

-- Looking for Q_WS_WIN

-- Looking for Q_WS_WIN - found

-- Looking for Q_WS_QWS

-- Looking for Q_WS_QWS - not found.

-- Looking for Q_WS_MAC

-- Looking for Q_WS_MAC - not found.

-- Found Qt-Version 4.7.2 (using H:/apps/Qt/4.7.2/bin/qmake.exe)

-- Found QutIM: H:/develop/qutim/dist/lib/liblibqutim.dll.a

H:/develop/qutim/dist/lib/libsimplecontactlist.dll.a

-- Configuring done

-- Generating done

-- Build files have been written to: H:/develop/windows/labs/build









これで、make installコマンドを実行してqutIMを実行できます。 cutimの実行中にこのコマンドを実行しないでください。 プラグインのソースコードは、 gitorius (フォルダーsevenlists)で取得できます。



結果はそのような美しさでなければなりません。







今最も必要なもの:





すべてのAPIに関する質問は、カンファレンスtalks@conference.qutim.orgにお問い合わせください。



All Articles