windows的排列顺序

The order of arrangement of windows

对不起我的英语。我需要执行 QWidget 的命令。我有一堆对象 QWidget。我需要按照它们在堆栈中出现的顺序放置 window。

例如:

堆栈:window1 -> window2 -> window3

在这个例子中 window2 总是关闭 window3,但它反过来又关闭 window1

Qt中有这样的功能吗?我不局限于QWidget。也许你可以以某种方式指定顺序 \ windows priority?

QStackedWidget class 提供了一堆小部件,其中一次只有 一个 小部件可见。我需要让所有小部件都可见,并且它们按优先顺序相互覆盖。

也许有一些标志。 Qt::WindowStaysOnTopHint 它不适合我,所以小部件 \ windows 很多,应该涵盖所有内容。并且都按优先顺序排列。

您可以在 window 的关闭事件中显式关闭子 window,例如:

class WindowWithChildWindow : public QWidget
{
    Q_OBJECT
public:
    WindowWithChildWindow(QWidget *child)
        : m_child(child)
    { }
    ....
protected:
    void closeEvent(QCloseEvent *e) override
    {
        if (!m_child || m_child->close())
            e->accept(); // close this window
        else // child ignored the close request in its close event
            e->ignore(); // do not close this window
    }
    ....
};