在Qt的主窗口右下角放置弹出窗口

时间:2017-07-15 06:46:41

标签: c++ qt qt5

我正在尝试在主窗口的右下角放置一个弹出窗口。即使主窗口调整大小/展开,也应该可以看到它。
我怎么能在Qt 5.9(用C ++编写)中做到这一点?

1 个答案:

答案 0 :(得分:0)

您的问题中的重要任务是在调整QMainWindow或移动QMainWindow时移动弹出窗口,为此我们必须覆盖resizeEventmoveEvent方法。以下代码显示了如何执行此操作:

void MainWindow::movePopUp()
{
    QPoint p = mapToGlobal(QPoint(size().width(), size().height())) -
            QPoint(popup->size().width(), popup->size().height());
    popup->move(p);
}

void MainWindow::resizeEvent(QResizeEvent *event)
{
    movePopUp();
    QMainWindow::resizeEvent(event);
}

void MainWindow::moveEvent(QMoveEvent *event)
{
    movePopUp();
    QMainWindow::moveEvent(event);
}

输出:

enter image description here

完整的示例是here