qt DockWidget 例子
时间: 2024-11-21 21:02:06 浏览: 6
Qt的DockWidget是一个功能强大的部件,它允许你在应用程序窗口中浮动或嵌入其他独立的窗口,称为DockWidget。这种设计模式非常适用于需要组织复杂用户界面的应用程序。下面是一个简单的例子:
```cpp
#include <QApplication>
#include <QMainWindow>
#include <QDockWidget>
class MainWindow : public QMainWindow {
public:
MainWindow(QWidget *parent = nullptr) : QMainWindow(parent) {
// 创建主窗口
QWidget *centralWidget = new QWidget(this);
setCentralWidget(centralWidget);
// 创建DockWidget
QDockWidget *dock = new QDockWidget("My Tool", this);
dock->setFeatures(QDockWidget::Floatable | QDockWidget::VerticalTitleBar); // 设置浮动摇杆和垂直标题栏
// 将QWidget添加到DockWidget内部
QWidget *toolWidget = new QWidget(dock);
QVBoxLayout *layout = new QVBoxLayout(toolWidget);
layout->addWidget(new QLabel("This is a tool widget!"));
// 把DockWidget添加到主窗口
addDockWidget(Qt::LeftDockWidgetArea, dock); // 可以指定Dock的位置,如左、右、上、下等区域
// 当Dock关闭时触发信号
connect(dock, &QDockWidget::closed, this, &MainWindow::onDockClosed);
}
private slots:
void onDockClosed() {
qDebug() << "Dock widget was closed";
}
};
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
MainWindow window;
window.show();
return app.exec();
}
```
在这个例子中,我们创建了一个`MainWindow`,并在其中添加了一个可以浮动的DockWidget,当Dock关闭时会打印一条消息。你可以根据实际需求定制Dock的内容和行为。
阅读全文