抱歉我的英文。我需要实现QWidget
的顺序。我有一堆对象QWidget
。我需要按照它们出现在堆栈中的顺序放置窗口。
例如:
堆叠:window1
- > window2
- > window3
从此示例window2
始终关闭window3
,但它会关闭window1
。
Qt中有没有这样的功能?我不仅限于QWidget
。也许你可以用某种方式指定订单\ windows优先级?
QStackedWidget
类提供了一组小部件,其中一次只能看到一个小部件。我需要让所有的小部件都被看到,并且它们按优先顺序相互覆盖。
也许有一些旗帜。 Qt::WindowStaysOnTopHint
它不适合我,所以widget \ windows很多,一个应该涵盖一切。一切按优先顺序排列。
答案 0 :(得分:2)
您可以在窗口的关闭事件中显式关闭子窗口,例如:
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
}
....
};