C++ 如何禁用Qt中心小部件调整夹点/手柄/调整光标大小

C++ 如何禁用Qt中心小部件调整夹点/手柄/调整光标大小,c++,qt,C++,Qt,这个问题可能非常具体,我不希望得到太多帮助。。但我还是要试试运气。我已经与这个问题斗争了很长时间,对此我非常着迷,在尝试了许多不同的大小策略组合和调整事件大小操作后,没有找到真正的解决方案。到目前为止,这是我最好的解决方案,但还远远不够理想 我有一个包含三个小部件的主窗口(中心是QWidget,顶部和底部是QDockWidget): 首先是中心小部件: QSizePolicy sizepolicy(QSizePolicy::Ignored, QSizePolicy::Expanding); ce

这个问题可能非常具体,我不希望得到太多帮助。。但我还是要试试运气。我已经与这个问题斗争了很长时间,对此我非常着迷,在尝试了许多不同的大小策略组合和调整事件大小操作后,没有找到真正的解决方案。到目前为止,这是我最好的解决方案,但还远远不够理想

我有一个包含三个小部件的主窗口(中心是QWidget,顶部和底部是QDockWidget):

首先是中心小部件:

QSizePolicy sizepolicy(QSizePolicy::Ignored, QSizePolicy::Expanding);
central->setSizePolicy(sizepolicy);
MainWindow::setCentralWidget(central);
然后是底部小部件:

QWidget* btitle = new QWidget(this);
bottom->setTitleBarWidget(btitle);
bottom->setMinimumHeight(65);
bottom->setAllowedAreas(Qt::BottomDockWidgetArea);
this->addDockWidget(Qt::BottomDockWidgetArea, bottom);
和一个顶级小部件:

QWidget* ttitle = new QWidget(this);
top->setTitleBarWidget(ttitle);
top->setMinimumHeight(30);
top->setMaximumHeight(30);
top->setAllowedAreas(Qt::TopDockWidgetArea);
this->addDockWidget(Qt::TopDockWidgetArea, top);
它们都正确对齐,没有不需要的边框/关闭按钮等,并且在调整应用程序窗口大小时正确更改大小。但就在顶部小部件的下方,有一个鼠标光标热点,用于调整中心小部件的大小(就像mac上的这个)软件用户可以在操作顶部小部件时很容易意外地抓住它,并开始调整中心小部件的大小。我已经编写了一个自动位置/大小修正器,它可以很好地将小部件大小/位置修正回正常状态,但小部件大小夹点/手柄/光标点现在是它被释放的位置,并一直保持在那里,直到再次抓取并调整大小。底部小部件也会发生同样的情况,但顶部小部件的位置和大小非常固定。这些句柄似乎只在小部件的顶部边界起作用

这是我在主窗口中实现的位置/大小修复:

    this->bottom->setGeometry(0, this->central->height()+30, this->width(), bottomsize);
this->central->setGeometry(0, 31, this->width(), this->height() - (30+bottomsize));
正如代码所暗示的,底部小部件有一个动态高度(bottomsize),中心小部件根据它调整大小,但顶部小部件的大小始终相同

此外,当拉动小部件上边框的调整大小夹点时,小部件大小会在由上面的线校正的位置和之前鼠标拖动的位置之间跳跃;在鼠标移动事件中,它是被拖动的位置,或者是正确的位置。此外,当夹点被拖动并释放到部件顶部位置以外的其他位置时,调整应用程序窗口的大小会对部件的位置和大小执行相同的位置/大小跳跃操作

因此我如何才能完全移除调整大小的控制柄/夹点,如果这是不可能的,为什么控制柄不根据控件SetGeometry()改变它的位置,将所有其他设置到正确的位置,但控制柄位置保持在先前释放的位置

谢谢你读到这里,我希望你对此有所收获。
我正在使用OSX10.11.3(ElCapitan)和Qt5.5

您是否尝试将top QDockWidget中的top widget设置为固定高度?尝试
ttitle->设置固定高度(30)您是否尝试将top QDockWidget中的top widget设置为固定高度?尝试
ttitle->设置固定高度(30)