技術共有

Qt: 19. フローティング ウィンドウ/サブウィンドウ (サブウィンドウの概要、コードでのサブウィンドウの作成、サブウィンドウのタイトルの設定、サブウィンドウへのコントロールの追加、およびサブウィンドウのドッキング位置の設定)

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

目次

1. サブウィンドウの紹介:

2. コードを使用してサブウィンドウを作成します。

3.サブウィンドウのタイトルを設定します。

4. サブウィンドウにコントロールを追加します。

5. サブウィンドウのドッキング位置を設定します。


1. サブウィンドウの紹介:

  • Qt では、子ウィンドウ (サブウィンドウ) を作成および管理して、マルチウィンドウ アプリケーションを実装できます。

  • 子ウィンドウは、ダイアログ ボックス、独立したウィンドウ、または MDI (Multiple Document Interface) 子ウィンドウにすることができます。

  • QDockWidget クラスを通じて子ウィンドウを作成します。

2. コードを使用してサブウィンドウを作成します。

  • 子ウィンドウ オブジェクトを作成します。 QDockWidget* dockWidget=new QDockWidget();
  • 子ウィンドウをメイン ウィンドウに追加します: this->addDockWidget(Qt::LeftDockWidgetArea, dockWidget);

        

3.サブウィンドウのタイトルを設定します。

  • サブウィンドウのタイトルを設定します: dockWidget->setWindowTitle("これはサブウィンドウのタイトルです");

        

4. サブウィンドウにコントロールを追加します。

  • サブウィンドウにコントロールを追加する場合、このウィンドウにサブコントロールを直接設定することはできません。
  • まず、別の QWidget オブジェクトを作成し、この QWidget オブジェクトにコントロールを設定します。
  • 次に、この QWidget オブジェクトを dockWidget に設定します。
  1. //为dockWidget赋予QWidget对象
  2. QWidget* container=new QWidget();
  3. dockWidget->setWidget(container);
  • dockWidget には QWidget オブジェクトを 1 つしか含めることができないため、新しいコントロールを追加する場合は、それを QWidget オブジェクトに追加する必要があります。
  1. MainWindow::MainWindow(QWidget *parent)
  2. : QMainWindow(parent)
  3. , ui(new Ui::MainWindow)
  4. {
  5. ui->setupUi(this);
  6. QDockWidget* dockWidget=new QDockWidget();
  7. this->addDockWidget(Qt::LeftDockWidgetArea,dockWidget);
  8. dockWidget->setWindowTitle("这是子窗口的标题");
  9. //为dockWidget赋予QWidget对象
  10. QWidget* container=new QWidget();
  11. dockWidget->setWidget(container);
  12. //创建两个控件
  13. QLabel* label=new QLabel("这是一个label控件");
  14. QPushButton* pushButton=new QPushButton("这是一个按钮");
  15. //创建一个布局管理利器,并且设置到QWidget对象中
  16. QVBoxLayout* layout=new QVBoxLayout();
  17. container->setLayout(layout);
  18. //将两个控件添加到布局管理器中
  19. layout->addWidget(label);
  20. layout->addWidget(pushButton);
  21. }

5. サブウィンドウのドッキング位置を設定します。

  • setAllowAreas(Qt::DockWidgetArea | Qt::DockWidgetArea) メソッドを通じて、許可されるドッキング位置を設定します。デフォルトは Qt::LeftDockWidgetArea - 左です。
  • 4 つの位置を設定でき、デフォルトの位置は上です。
  • Qt::TopDockWidgetArea——上
  • Qt::BottomDockWidgetArea——下
  • Qt::LeftDockWidgetArea——左
  • Qt::RightDockWidgetArea——右