기술나눔

Qt: 19. 부동 창/하위 창(하위 창 소개, 코드로 하위 창 만들기, 하위 창 제목 설정, 하위 창에 컨트롤 추가 및 하위 창 도킹 위치 설정)

2024-07-12

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

목차

1. 하위 창 소개:

2. 코드를 사용하여 하위 창을 만듭니다.

3.하위 창 제목을 설정합니다:

4. 하위 창에 컨트롤을 추가합니다.

5. 하위 창의 도킹 위치를 설정하세요.


1. 하위 창 소개:

  • Qt에서는 다중 창 응용 프로그램을 구현하기 위해 자식 창(하위 창)을 만들고 관리할 수 있습니다.

  • 하위 창은 대화 상자, 독립 창 또는 MDI(다중 문서 인터페이스) 하위 창일 수 있습니다.

  • 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 객체만 포함할 수 있으므로 새 컨트롤을 추가하려면 이를 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——참고