使用QT5.11将浮动按钮保持在相对于窗口和窗口范围内的位置

时间:2018-06-15 04:33:43

标签: c++ qt qt5

我正在使用Qt 5.11并且我有一个可移动的浮动小按钮,我想在调整大小或最大化/最小化窗口时始终保持相对于窗口的位置,并且还希望它保留在窗口区域内永远不要进入可见的窗户区域。 我有以下代码,有点做我需要的但是不能一直正常工作!例如,有时它有点落后于窗户的角落,有时在调整窗口的大小时,交错按钮会失去它的位置......

// Move floating button to stay visible in place when ever the window resizes 
void MyWindow::resizeEvent(QResizeEvent* event)
{
    if (m_fButton) {
        if (m_fButton->pattern() != RootFloatingButton::Pattern::Floating)
        m_fButton->tabWidgetChanged(tabWidget());
    else {
        if (m_fButton->x() > event->size().width())
        {
            m_fButton->move((event->size().width() + m_fButton->width()), (m_fButton->y()));
        }
        if (m_fButton->y() > event->size().height())
        {
            m_fButton->move((m_fButton->x()), (event->size().height() - m_fButton->height()));
        }
// this code below was first used to keep the button in place relative to the window when resized
        m_fButton->move(std::min(m_fButton->x(), event->size().width() + m_fButton->width()),
                        std::min(m_fButton->y(), event->size().height() + m_fButton->height()));
}

我在下面提到的代码有效,但只有当按钮保持在底部右下角时,一旦窗口从底部角落经过,按钮将不再出现...

我知道如何解决这个问题吗?

0 个答案:

没有答案