如何知道在每个mdi subWindow中打开的文件的路径?

时间:2014-06-19 17:04:51

标签: c++ qt qt5

我有以下MDI application

每个sub Window都包含不同文件的内容 因此,当我们想要保存活动窗口的内容时,我们想知道在活动窗口中打开的文件的路径。

如何知道在有效subWindow或任何其他subWindow中打开的文件的路径?

2 个答案:

答案 0 :(得分:1)

完全要求你的申请。

QMdiSubWindow只持有一个QWidget。当然,拥有文件路径并不是q QWidget的必备条件。在我的pqSource组件中,我使用了不同的类,并且我有一个MdiHelper类,实现了一个类型化的'集合'子窗口:

template<class T>
QList<T*> typedSubWindows() const
{
    QList<T*> l;
    foreach (auto w, mdiArea()->subWindowList())
        if (auto s = qobject_cast<T*>(w->widget()))
            l << s;
    return l;
}

其中一些小部件有一个文件路径...

答案 1 :(得分:0)

您可以使用QObject::setProperty在窗口小部件上将路径设置为用户属性,然后使用QObject::property进行检索。 QMdiSubWindow没有打开文件的概念。它只是一个MDI小部件。有人可能会用它来显示今天的天气,而不是任何特定文件的内容。