我真的是 QML 的新手,我正在为在 QML 中定义基本布局而苦苦挣扎。如何将元素锚定到窗口,以便在用户调整窗口大小时调整大小?我想添加一个填充窗口中所有可用空间的矩形,但我还没有找到从 qml 文件内部执行此操作的方法。到目前为止,我发现的所有示例都使用固定的宽度和高度,但这意味着当窗口大小发生变化时,元素将保持其预设大小。
针对您的具体问题:
- 根据 parent ( sibling )锚定所有元素。
- 总是让你的顶级 qml 元素填充查看器空间,如解释的那样 here .
添加到它。每当您需要进行此类调整大小时,您需要从一侧向另一侧通知几何形状的变化。我的意思是,从 qml 到 C++ 或从 C++ 到 qml。
告诉 qml 在顶部窗口调整大小:
qml 中的顶级父元素不会收到任何有关调整小部件大小的信号。您需要手动执行此操作。
要获取顶部小部件实际调整大小的信息,您需要实现 resizeEvent功能。
无论何时调用您的实现,您都需要向 qml 端发出信号,表明发生了一些大小调整,因此顶层 qml 父级也应该自行调整大小。
告诉 C++ 在顶部 qml 元素中调整大小:
同样,您在 C++ 中的小部件将不会收到有关调整顶部 qml 元素大小的任何信号。您需要手动执行此操作:
- 从 C++ 端向 qml 公开一个类。
- 每当顶部 qml 元素发生变化时,调用此类的一个函数来通知此更改,并要求它也调整顶部小部件的大小。
您可以获得这些方法的基本概念 here和 here .
我是一名优秀的程序员,十分优秀!