QTCreatorでカスタムコンストラクターを使用してカスタムウィジェットをプロモートします

ミグシ

これは基本的に同じ質問ですが、私の問題はさらに進んでいます。

次のツリーは私の構造を説明しています:

         QWidget
            |
       CustomWidget
        |        |
    MyTable  MyWidgetAroundIt

MyTableQtDesignerで宣伝しました。だから、私はそれをに追加することができMyWidgetAroundItます。それは非常にうまくいきました。唯一の問題は、CustomWidgetもである必要があることです。CustomWidgetコンストラクタは次のようになります。

CustomWidget(CustomWidget* parent) : QWidget(parent), _specialValue(parent->getSpecialValue)

これにより、デザイナが生成したコードではなくMyTableQWidget*初期化しようとするため、コンパイルエラーが発生しますCustomWidget*これを防止したり、設計者にこの要件に関するヒントを提供したりするには、どうすればよいですか?

クバはモニカを忘れていません

親がにできないQWidgetウィジェットは、もはやウィジェットではありません。あなたのデザインはリスコフの置換原則に違反しており、修正する必要があります。

ウィジェットが特定のタイプである場合は、特別な機能を自由に有効にできますが、ウィジェットは親の任意のウィジェットで使用できる必要があります。

したがって:

CustomWidget(QWidget* parent = nullptr) :
  QWidget(parent)
{
  auto customParent = qobject_cast<CustomWidget*>(parent);
  if (customParent)
    _specialValue = customParent->specialValue();
}

または:

class CustomWidget : public QWidget {
  Q_OBJECT
  CustomWidget *_customParent = qobject_cast<CustomWidget*>(parent());
  SpecialType _specialValue = _customParent ? _customParent->specialValue() : SpecialType();

  SpecialType specialValue() const { return _specialValue; }
public:
  CustomWidget(QWidget * parent = nullptr) : QWidget(parent) {}
};

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

AnyLogicでカスタムオブジェクトを使用してデータをプロットする方法は?

分類Dev

Dozerのカスタムコンバーターを使用して、オブジェクトのリストを別のリストにマップします

分類Dev

C#は、カスタムコンストラクターを使用して1つのjsonフィールドをオブジェクトに解析します

分類Dev

反応コンポーネントのジェストと酵素を使用してカスタムサービスをモックします

分類Dev

カスタムウィザードを使用したVisualStudioプロジェクトテンプレート

分類Dev

woocommerceチェックアウトでカスタム支払いプラグインのカスタムjsコードを実行します

分類Dev

Firefoxでカスタムプロトコルハンドラーを使用してシェルスクリプトを実行しますか?

分類Dev

カスタムコンストラクターを使用してオブジェクトをクラス属性としてインスタンス化する(C ++)

分類Dev

UIデザインファイルを使用し、カスタムコンストラクターQTを使用してカスタムウィジェットを作成する

分類Dev

クリックハンドラーをカスタムjQueryUIウィジェットに追加し、ハンドラーでウィジェットのプロパティを使用するにはどうすればよいですか?

分類Dev

QtCreatorを使用してカスタムビルドプロジェクトをデプロイする

分類Dev

カスタムデータとレイアウトプロパティを使用してプログラムでアイコンを作成する

分類Dev

VisualStudioセットアッププロジェクトでカスタムフォームを使用してセットアップウィザードをカスタマイズする方法

分類Dev

ThingsBoard:チャートウィジェットで将来のタイムスタンプを使用して時系列をプロットします

分類Dev

オブジェクトモデルのコンテンツに応じてカスタムウィジェットを使用してListViewを作成する方法

分類Dev

Woocommerce3でカスタムメタデータの注文としてカスタムチェックアウトフィールドを追加します

分類Dev

非同期ソースを使用してカスタムウィジェットのデータを取得する方法

分類Dev

カスタムオブジェクトをコアデータプロパティとして保存する

分類Dev

既存のウィジェットのグループを使用してカスタムウィジェットを作成しますか?

分類Dev

AndroidのonCreate()で使用するカスタムクラスオブジェクトを使用してlateinitを適切に実装し、「プロパティゲッターまたはセッターが期待される」エラーを回避する方法

分類Dev

指定されたアクションアドレスを使用してWordpressでカスタムログインウィジェットを作成します

分類Dev

Rでカスタムカラーを使用してラスター画像をプロットする

分類Dev

フォールバックシステムを使用してPHPでリモートURLデータをダウンロードするカスタム関数

分類Dev

果樹園で、カスタムUserRankingActivityコードをウィジェットまたはプラグインのどこに配置しますか?

分類Dev

ウィンストンのカスタムフォーマッタを使用してログのエラー

分類Dev

カスタムコントローラーでSpringRESTプロジェクションを使用する方法

分類Dev

Javaストリームマップは、カウンタを持つオブジェクトを作成します

分類Dev

カスタムJavafxコンポーネントのパラメーターとしてカスタムFXMLプロパティを設定します

分類Dev

ブートストラップでdataTablesを使用してカスタムコントロールをdomに追加します

Related 関連記事

  1. 1

    AnyLogicでカスタムオブジェクトを使用してデータをプロットする方法は?

  2. 2

    Dozerのカスタムコンバーターを使用して、オブジェクトのリストを別のリストにマップします

  3. 3

    C#は、カスタムコンストラクターを使用して1つのjsonフィールドをオブジェクトに解析します

  4. 4

    反応コンポーネントのジェストと酵素を使用してカスタムサービスをモックします

  5. 5

    カスタムウィザードを使用したVisualStudioプロジェクトテンプレート

  6. 6

    woocommerceチェックアウトでカスタム支払いプラグインのカスタムjsコードを実行します

  7. 7

    Firefoxでカスタムプロトコルハンドラーを使用してシェルスクリプトを実行しますか?

  8. 8

    カスタムコンストラクターを使用してオブジェクトをクラス属性としてインスタンス化する(C ++)

  9. 9

    UIデザインファイルを使用し、カスタムコンストラクターQTを使用してカスタムウィジェットを作成する

  10. 10

    クリックハンドラーをカスタムjQueryUIウィジェットに追加し、ハンドラーでウィジェットのプロパティを使用するにはどうすればよいですか?

  11. 11

    QtCreatorを使用してカスタムビルドプロジェクトをデプロイする

  12. 12

    カスタムデータとレイアウトプロパティを使用してプログラムでアイコンを作成する

  13. 13

    VisualStudioセットアッププロジェクトでカスタムフォームを使用してセットアップウィザードをカスタマイズする方法

  14. 14

    ThingsBoard:チャートウィジェットで将来のタイムスタンプを使用して時系列をプロットします

  15. 15

    オブジェクトモデルのコンテンツに応じてカスタムウィジェットを使用してListViewを作成する方法

  16. 16

    Woocommerce3でカスタムメタデータの注文としてカスタムチェックアウトフィールドを追加します

  17. 17

    非同期ソースを使用してカスタムウィジェットのデータを取得する方法

  18. 18

    カスタムオブジェクトをコアデータプロパティとして保存する

  19. 19

    既存のウィジェットのグループを使用してカスタムウィジェットを作成しますか?

  20. 20

    AndroidのonCreate()で使用するカスタムクラスオブジェクトを使用してlateinitを適切に実装し、「プロパティゲッターまたはセッターが期待される」エラーを回避する方法

  21. 21

    指定されたアクションアドレスを使用してWordpressでカスタムログインウィジェットを作成します

  22. 22

    Rでカスタムカラーを使用してラスター画像をプロットする

  23. 23

    フォールバックシステムを使用してPHPでリモートURLデータをダウンロードするカスタム関数

  24. 24

    果樹園で、カスタムUserRankingActivityコードをウィジェットまたはプラグインのどこに配置しますか?

  25. 25

    ウィンストンのカスタムフォーマッタを使用してログのエラー

  26. 26

    カスタムコントローラーでSpringRESTプロジェクションを使用する方法

  27. 27

    Javaストリームマップは、カウンタを持つオブジェクトを作成します

  28. 28

    カスタムJavafxコンポーネントのパラメーターとしてカスタムFXMLプロパティを設定します

  29. 29

    ブートストラップでdataTablesを使用してカスタムコントロールをdomに追加します

ホットタグ

アーカイブ