2012-02-26 21 views
6

qt作成者のqtデザイナー部分には、多くのウィジェットが組み込まれています。しかし、同じqtプロジェクトで作成されたカスタムウィジェットをウィンドウのuiファイルに追加したいとしましょう。これらのステップ取ることによって:qt作成者のuiファイルにユーザー作成ウィジェットを追加する

  1. は、メインウィンドウで新しいQtのGUIアプリケーションを作成し、我々は言う、ウィジェットはちょうど標準のUIコンポーネントを使用しています
  2. は、プロジェクトに新しいウィジェットを追加A.ウィンドウ呼ぶことにしますボタン。ウインドウAで

    1. :私たちは今、私はそれを行うための一つの方法を知って、それがあるウィンドウA.

    にウィジェットBのインスタンスを追加します

  3. このウィジェットB.を呼ぶことにします、可能なウィジェットのリストのコンテナ部分から、空白のウィジェット(またはウィジェットコンテナを追加します。私たちは、このウィジェットを呼ぶことにしますC.
  4. は、しかしB.

をウィジェットにそれ(ウィジェットC)を推進しますこの問題は、Qt CreatorのデザイナーがジェネリックQWidgetのように扱うということです。そのため、スプリッターに追加したり、ウィジェットに特有の信号/スロットを接続したりすることはできません。

qt creatorを使用してuiファイルのウィンドウAにウィジェットBを追加する方法はありますか?ありがとうございました。

+2

デザイナー用のカスタムウィジェットを作成することができます。http://developer.qt.nokia.com/doc/qt-4.8/designer-creating-custom-widgets.html – Lol4t0

+0

この手順に従えばこのプロジェクトを編集したい人は、別にプラグインをインストールする必要がありますか?私は可能であれば、プラグインをインストールせずにプロジェクトを開くことができる場所に置いておきたいと思っています。 –

+0

@LeifAndersenこれは、新しいウィジェットを見たり操作したりするためだけに、プラグインがプロジェクトを開く必要はありません。プロジェクトやチームによっては、プラグインの中央リポジトリが可能性があります。それは私たちの会社がしているものです。しかし、私はこれら以外の選択肢がないことを知っています。 –

答えて

1

あなたの質問をうまく理解できないので間違った質問をすることができます。あなたの "B"ウィジェットがQDesignerCustomWidgetInterfaceのサブクラスだと確信していますか?これは、あなたのウィジェット/プラグインが提供するすべてのものを公開する必要があります...

最後のメモ:私の友人はあなたのようなカスタムウィジェットを追加しようとしました。そして、Lol4t0があなたに言った手順の終わりに、と同じコンパイラを使ってコンパイルする必要があります。qtcreator/designerがコンパイルされています。これは、C++が(C言語の代わりに)ABIの互換性を保つことができないことがわかっているからです。名前の扱いはコンパイラからコンパイラに変わり、データがレジスタにロードされる方法などが変わります。私の友人はmingwとのプラグインをコンパイルしようとしましたが、qtcreatorはVisual Studioコンパイラでコンパイルされていました。したがって、プラグインをWindowsにデプロイする場合や、Visual Studioでプラグインをコンパイルする場合や、qtcreator/designerをゼロからコンパイルする必要がある場合は、

関連する問題