私はかなり単純なことをしたい: Qt デザイナーにカスタム ウィジェットを追加します。これは、基本的にカスタム垂直レイアウトを含む scrollArea になります (プロジェクトのオブジェクトを処理するために、垂直レイアウトにいくつかのコードを追加しました)。アイデアは、画面の横にある垂直メニューを表すことです
これまでに行ったこと
カスタム ウィジェット プラグインとカスタム レイアウトを作成しました。
私のカスタム ウィジェット コードは次のようになります。
#include "menuwidget.h"
MenuWidget::MenuWidget(QWidget *parent) :
QScrollArea(parent)
{
this->setWidgetResizable(true);
QWidget* layoutHoldingWidget= new QWidget(this);
layout= new MenuLayout();
layout->setSizeConstraint(QLayout::SetMinAndMaxSize);
layout->addStretch(1);
layoutHoldingWidget->setLayout(layout);
this->setWidget(layoutHoldingWidget);
}
(コンストラクターコードで)レイアウトに手動でいくつかのボタンを追加すると
for(int i =0;i<20;i++)
layout->addWidget(new QPushButton(this));
それは機能し、いくつかのボタンを含む scrollArea を見ることができます。これはほとんど私が望むものです。
私が欲しいもの
これらのボタンを Qt デザイナーを介して直接追加できるようにしたいと考えています。ユーザーは最初に空の MenuWidget をメイン ウィンドウにドラッグし、次にカスタム ウィジェットに QPushButtons を通常の垂直レイアウトとまったく同じようにドラッグします。
それは可能ですか?どうすればそのようなことができますか?
ありがとうございました !:)
編集 1
私が欠けていたのは、QScrollArea をドラッグ アンド ドロップすると常に作成される「scrollAreaWidgetContents」ウィジェットでした。ウィジェット (containerWidget と呼びましょう) を domXml 関数でカスタム scrollArea に追加することで、同様のことを行いました。これにより、スクロール エリアにウィジェットをドラッグ アンド ドロップできます。
しかし、まだ理解できないことがあります: containerWidget に customLayout (myCustomLayout) を持たせたいのです。domXml 関数に追加すると、ターミナルに次の行が表示されます。
デザイナー: レイアウト タイプ 'MyCustomLayout' はサポートされていません。デフォルトはグリッドです。
つまり、カスタム レイアウトを使用してウィジェットを配置するようにデザイナーに指示することはできません。これはちょっと悲しいことです:D
ここで「チート」する方法はありますか?