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
}
....
};
对不起我的英语。我需要执行 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
}
....
};