2011-11-16 14 views
2

QListViewを拡張してマウスイベントをオーバーライドしました。その拡張機能をQt Creatorビジュアルデザインウィジェットボックスのウィジェットとして利用できます。Qtにカスタムウィジェットをインストールするには?

私はカスタムウィジェットを構築するアナログ時計の例に従っています。私は間違いなくそれを構築しました。しかし、どうすればインストールできますか?ビルドステップを追加し、makeコマンドに「install」を追加しますか?

Qtのドキュメントでは、カスタムウィジェットのインストール方法を明確に説明せずに、単にインストールすることも、インストールすることもできます。プロジェクトビルドの中で「make install」を行うにはどうすればいいですか?

.NETでは、ビジュアルスタジオウィンドウフォームは、私のプロジェクトにウィジェットを含めるだけでした。

.soまたは.dllファイルを特定のディレクトリに手動でコピーする必要がありますか。

私のQt Creatorウィジェットボックスにカスタムウィジェットを表示させるために必要なことを明確に説明する人がいますか?私はカスタムウィジェットを作成するためのコードと設定の記述方法については問いません。私はすでにカスタムウィジェットを持っています。私は次のステップが何であるべきかを知る必要があります。

私はUbuntuを使用していますので、WindowsのmingwでCreatorを再ビルドする理由/方法を説明しません。

答えて

5

簡単な方法があります。デザイナーに通常のQListViewを配置し、右クリックして「昇格」します。そこに、拡張ウィジェットのクラス名を入力します。

+0

はい、ほとんどの場合、それで十分です。 –

+0

あなたは天才です。あなた。 –

+0

+1非常に非常に簡単な回避策(私は何時間も失敗したカスタムプラグインを作成しようとした後)。これは依然としてカスタムウィジェットを「ウィジェットペイン」(Qtデザイナーで利用可能なウィジェットを視覚化するペイン)に表示させませんが、カスタムウィジェットがプロモートされると、将来的にプロモートできるように見えます。 – IsaacS

0

ウィジェットを使用するには、プロジェクトにモジュールを含めるだけです。 デザイナーのウィジェットを表示するには、qtデザイナー用のプラグインを作成する必要があります。

私はcmakeとlinuxを使用しましたが、これは他の設定でも同様です。 CMakeLists.txtで 私が持っている:

ADD_LIBRARY(widgets_plugin SHARED 
    foo.cpp 
) 
SET_TARGET_PROPERTIES(widgets_plugin PROPERTIES COMPILE_FLAGS "${QT_DEFINITIONS} -DQDESIGNER_EXPORT_WIDGETS -DQT_PLUGIN -DQT_NO_DEBUG -DQT_SHARED") 

TARGET_LINK_LIBRARIES(widgets_plugin ${QT_LIBRARIES}) 
IF (NOT WIN32) 
    ADD_CUSTOM_COMMAND(TARGET widgets_plugin POST_BUILD 
     COMMAND rm -fr ${CMAKE_CURRENT_BINARY_DIR}/designer 
     COMMAND mkdir ${CMAKE_CURRENT_BINARY_DIR}/designer 
     COMMAND cp ${CMAKE_CURRENT_BINARY_DIR}/libwidgets_plugin.so ${CMAKE_CURRENT_BINARY_DIR}/designer/ 
) 
ENDIF (NOT WIN32) 

その後、あなたは的環境変数

QT_PLUGIN_PATH="path/to/you/plugin" 

を定義し、それがこの変数を参照するように、qtのデザイナーを実行する必要があります。

Windows以外のマシンでqtデザイナが異常に動作することを覚えているように、QT_PLUGIN_PATHを見ず、$ QT_PLUGIN_PATH/designerを使用します。ウィンドウでは$ QT_PLUGIN_PATHを見ます。

関連する問題