gpt4 book ai didi

qt - 如何在 Qt Creator src 中获取和移动 EditorManager 的父窗口?

转载 作者:行者123 更新时间:2023-12-04 19:42:12 25 4
gpt4 key购买 nike

我打开了 1 个 Qt Creator 实例,其中有 2 个 float 窗口(在新窗口中打开)。这给了我总共 3 个“编辑器窗口”。每个“编​​辑器窗口”有 3 个水平分割,给我 +-9 个打开的文档。我把它分布在 3 台这样的显示器上 this .

我通常使我的工作站休眠,但如果我崩溃并必须重新启动,或者我在另一台机器上打开项目,我会丢失 float 窗口和拆分中的文档以及这些文档中滚动的位置,我必须手动启动过度重新安排一切。 我希望在项目加载时保存和调用此 float 获胜位置和编辑器 View 拆分数据 .

为了解决这个问题,我一直在从源代码构建 Qt Creator。我的第一个任务是移动初始(或 float )窗口。我已经找到了一些东西,但是 我找不到 EditorManager 的“父小部件”,它是上面提到的“编辑器管理器” .因此,只有编辑经理移动,这显然是我不想要的。 如何访问和移动初始父窗口和 float 窗口?

//editormanager.cpp

void EditorManagerPrivate::restoreFloatingWindows()
{
for (int i = 0; i < d->m_editorAreas.size(); ++i)
{
d->m_editorAreas[i]->move(100, 100); // don't want to move this
d->m_editorAreas[i]->parentWidget()->move(100, 100); //no effect

qDebug() << "pos" << d->m_editorAreas[i]->pos();
qDebug() << "pos parentWidget" << d->m_editorAreas[i]->parentWidget()->pos();
}
}

最佳答案

全部 QWidgets从 Qt 5 开始,有一个指向包含窗口的指针。

http://doc.qt.io/qt-5/qwidget.html#window

就存储和调用几何和状态而言,这些方法非常有用:

http://doc.qt.io/qt-5/qwidget.html#saveGeometry

http://doc.qt.io/qt-5/qwidget.html#restoreGeometry

http://doc.qt.io/qt-5/qmainwindow.html#saveState

http://doc.qt.io/qt-5/qmainwindow.html#restoreState

使用时 QSettings ,启动一个数组,然后为每个窗口推送这些值。或者在加载项目时,提取每个值并使用适当的 setter 。

希望有帮助。

关于qt - 如何在 Qt Creator src 中获取和移动 EditorManager 的父窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32227872/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com