QDockWidget - 删除句柄

时间:2009-09-23 17:22:06

标签: c++ qt

有没有简单的方法来删除QDockWidget的调整大小句柄?我的dock小部件无法调整大小(sizepolicy是固定的),因此拥有句柄只是多余的。

3 个答案:

答案 0 :(得分:0)

QMainWindow实例&amp ;;将句柄绘制为分隔符。我认为修改它的唯一方法是使用样式表。

http://doc.trolltech.com/main-snapshot/stylesheet-examples.html#customizing-qmainwindow

将背景颜色设置为当前调色板背景似乎有效:

QPalette pal = QApplication::palette(&mainWin);
QString wcolor = pal.window().color().name();
QString style= QString( "QMainWindow::separator { background: %1;}").arg(wcolor);
mainWin.setStyleSheet(style);

答案 1 :(得分:0)

这个bug和Qt本身一样久了,我在Qt bugtracker中为此报道了这个report。如果你想让它更快修复,请把它投票。

答案 2 :(得分:0)

如果仍然有人在努力解决这个问题,我刚刚发现,在Windows上使用Qt 5.15,可以通过将QSizePolicy :: Fixed固定在将放入小部件中的适当方向上来删除大小调整手柄。 QDockWidget(不是QDockWidget本身,它无效);例如:

QDockWidget *cdw = new QDockWidget("Settings", this);
cdw->setFeatures(QDockWidget::DockWidgetMovable|QDockWidget::DockWidgetFloatable);
cdw->setAllowedAreas(Qt::LeftDockWidgetArea|Qt::RightDockWidgetArea);
controlDock = new ControlDock(cdw, this);
controlDock->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Minimum);
cdw->setWidget(controlDock);
addDockWidget(Qt::LeftDockWidgetArea, cdw);

生成的面板无论是停靠的还是浮动的,都无法水平调整大小,也没有调整热点的大小。