私はQt 5.8を使用しています。私はいくつかの他のQWidgetsで構成されている私のカスタムQFrame(MyQFrameと呼ぶ)を持っていて、私のカスタムMyQFrameの他のインスタンスを含むことができます。 MyQFrameの最小サイズを設定しました。 MyQFrameはレイアウトとしてQGridLayoutを使用します。QScrollArea with custom QFrame
このMyQFrameは、QTabWidgetのQScrollAreaの内部に配置されています。 QScrollAreaはサイズ変更可能に設定されています(setWidgetResizable(true)
)。 MyQFrameではサイズポリシーを拡張(setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
)に設定しようとしましたが、効果がありませんでした。
これは私がQTabWidgetとQScrollAreaを作成する方法(抽象)である:
QTabWidget* tabWidget = new QTabWidget();
QScrollArea* firstTab = new QScrollArea();
firstTab->setWidgetResizable(true);
tabWidget->addTab(firstTab, "first tab");
MyQFrame* myFrame1 = new MyQFrame();
firstTab->setWidget(myFrame1);
// ... adding other MyQFrames inside this one using methods in MyQFrame ...
私が働いてスクロール領域を取得することはできません。ネストされたMyQFramesの親を拡張し、スクロールバーを追加するのではなく、最後の子が他のMyQFramesと重なり合うことになります。 MyQFramesにはsetWidgetResizable
のようなものがありませんが、このメソッドはQScrollAreaにしかありません。私は今何を試してみるべきか分かりません。私はまだかなり新しいです。
以下の画像より明確になるはずです。
MyQFrame(3000x3000)で最小のサイズに設定してから、スクロールバーが表示されました。しかし、MyQFramesはかなり重なっていました。 – Pyro