QDockWidget 的使用
构造函数中调用如下
// 创建可停靠窗口1
// createDockWidget("窗口1", "这是可停靠窗口1", Qt::RightDockWidgetArea);
// createDockWidget("窗口3", "这是可停靠窗口3", Qt::RightDockWidgetArea);
// 创建可停靠窗口2
// createDockWidget("窗口2", "这是可停靠窗口2", Qt::LeftDockWidgetArea);
// 允许所有停靠区域
setDockOptions(QMainWindow::AllowNestedDocks | QMainWindow::AllowTabbedDocks);
相关函数
void WorkWindow::createDockWidget(const QString &title, const QString &content, Qt::DockWidgetArea area) {
QDockWidget *dock = new QDockWidget(title, this);
dock->setAttribute(Qt::WA_DeleteOnClose);//设置点击关闭按钮,即释放当前dock
QTextEdit *textEdit = new QTextEdit(dock);
textEdit->setText(content);
dock->setWidget(textEdit);
// 设置可浮动
dock->setFeatures(QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetClosable | QDockWidget::DockWidgetFloatable);
addDockWidget(area, dock);// 添加到主窗口
}
qss美化
原文链接:https://blog.csdn.net/wzs250969969/article/details/78466143
QDockWidget {
border: 1px solid red;
titlebar-close-icon: url(:/images/111.bmp);
titlebar-normal-icon: url(:/images/close.png);
}
/* 标题设置 */
QDockWidget::title {
text-align: right;
background: lightgray;
padding-left: 35px;
}
/* 关闭和显示按钮 */
QDockWidget::close-button, QDockWidget::float-button {
border: 2px solid transparent;
background: darkgray;
padding: 2px;
icon-size: 14px; /* maximum icon size */
}
/* 鼠标悬浮状态 */
QDockWidget::close-button:hover, QDockWidget::float-button:hover {
background: red;
}
/* 鼠标按下状态 */
QDockWidget::close-button:pressed, QDockWidget::float-button:pressed {
padding: 1px -1px -1px 1px;
}
/* 把按钮移到左上角 */
QDockWidget::close-button {
subcontrol-position: top left;
subcontrol-origin: margin;
position: absolute;
top: 0px; left: 0px; bottom: 0px;
width: 14px;
}
QDockWidget::float-button {
subcontrol-position: top left;
subcontrol-origin: margin;
position: absolute;
top: 0px; left: 16px; bottom: 0px;
width: 14px;
}

浙公网安备 33010602011771号