QT如何实现在一个大窗口里面有几个小窗口
时间: 2024-09-24 09:05:47 浏览: 53
在Qt中,要在大窗口(主窗口)内添加多个小窗口(子窗口),你可以使用`QWidget`作为基础,并结合`QDockWidget`、`QSplitter`或`QStackedWidget`等控件来实现。以下是三种常见方法:
1. **QDockWidget**:这是一个可以浮动的小窗口,可以在主窗口边栏或主窗口内部浮动。通过`addDockWidget()`方法将小窗口添加到主窗口中。
```cpp
QDockWidget *childWindow = new QDockWidget("Child Window");
setCentralWidget(childWindow);
```
2. **QSplitter**:用于分割窗口并显示多个独立的部件。可以设置水平或垂直布局,将小窗口添加到splitter中。
```cpp
QSplitter *splitter = new QSplitter(Qt::Horizontal);
addWidgetToSplitter(splitter, new QWidget());
addWidgetToSplitter(splitter, new QWidget());
setCentralWidget(splitter);
```
3. **QStackedWidget**:堆叠式窗口,每个小窗口在栈上按顺序显示,用户只能看到当前活动的那一个。切换子窗口可以通过`setCurrentIndex()`方法。
```cpp
QStackedWidget *stackedWidget = new QStackedWidget(this);
addWidget(stackedWidget, new QWidget());
addWidget(stackedWidget, new QWidget());
setCentralWidget(stackedWidget);
```
以上示例需要自己编写`addWidgetToSplitter()`或类似函数以添加widget到对应的容器中。
阅读全文