qtサブウィンドウをメインウィンドウにネストする方法は何ですか?

Qtでは、サブクラスウィンドウをメインウィンドウの子ウィジェットとしてネストすることができます。以下はその実装方法の1つです:

  1. 子供用ウィジェット
class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);

private:
    ChildWidget *childWidget;
};
  1. 主窗口のコンストラクター内で子ウィンドウのインスタンスを作成し、その親オブジェクトを主窗口に設定します。
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    childWidget = new ChildWidget(this);
    
    // 其他主窗口的设置和布局...
}
  1. 子ウィンドウをメインウィンドウのレイアウトに追加する。
// 创建一个主窗口的中心部件
QWidget *centralWidget = new QWidget(this);
setCentralWidget(centralWidget);

// 创建一个垂直布局管理器
QVBoxLayout *layout = new QVBoxLayout(centralWidget);

// 将子窗口添加到布局中
layout->addWidget(childWidget);

上記の手順により、サブウィンドウがメインウィンドウに正常に埋め込まれました。メインウィンドウの他の部品からサブウィンドウにアクセスして操作することができます。

bannerAds