Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt快速动态自定义布局(如IDE中的工作空间)_Qt_Qml - Fatal编程技术网

Qt快速动态自定义布局(如IDE中的工作空间)

Qt快速动态自定义布局(如IDE中的工作空间),qt,qml,Qt,Qml,我正在处理的项目要求在很大一部分工作区中进行工作区布局,我的意思是用户可以在窗格中移动、调整大小、关闭窗格等,就像在VSCode中一样(但更像Emacs,因为VSCode目前不支持垂直和水平拆分) 我正在考虑的当前方法是创建一个定制的LayoutManager,它有一个json对象,并将视图注入到二叉树结构中的递归行和列对象中。在我开始这项工作之前,我想知道是否有一个库或一组QtQuick(QML)元素可以让我更轻松地完成这项工作,或者是否有更好的方法解决这个问题。或者,请告诉我为什么我这样做是

我正在处理的项目要求在很大一部分工作区中进行工作区布局,我的意思是用户可以在窗格中移动、调整大小、关闭窗格等,就像在VSCode中一样(但更像Emacs,因为VSCode目前不支持垂直和水平拆分)

我正在考虑的当前方法是创建一个定制的LayoutManager,它有一个json对象,并将视图注入到二叉树结构中的递归
对象中。在我开始这项工作之前,我想知道是否有一个库或一组QtQuick(QML)元素可以让我更轻松地完成这项工作,或者是否有更好的方法解决这个问题。或者,请告诉我为什么我这样做是错误的


注意:我使用的技术是C++,QT 5(当前5.10)。

< P>如果你想要高度可定制的GUI,可以选择UI配置,最好是设计整个模型驱动的。p> QML已经有了必要的东西-列表视图、中继器等等。QML与树模型有点不一致,但实际上可以通过使用列表列表来伪造树

该模型将实现这一点,它还支持声明性实例化。因此,您可以轻松地以声明方式设置初始GUI状态,就像使用普通QML一样,但随后允许用户对初始状态进行修改,然后可以保存和调用初始状态


然后,您所要做的就是将所需的GUI元素绑定到底层模型数据源对象。

这肯定回答了我将如何对GUI状态建模,但我将如何进行绑定部分?假设我只有三个视图元素,行、列和视图1,我会创建组件来加载行、列和视图1,这些组件本身带有加载器,然后处理模型的下一部分吗?“绑定”部分是通过向每个模型项提供要实例化的GUI元素和数据源的信息来实现的。如果您想进入模型的某个级别,那么只需该特定委托自己实现一个视图,该视图设置为使用特定模型项作为模型。好的,谢谢。你知道有什么例子可以帮助我开始吗?嗯,不是真的,这不是典型的“按书”的东西。只需从一个小树模型开始,并尝试将其可视化,然后在该设计的基础上构建。如果你遇到麻烦,你总是可以问更多的问题。你认为工厂适合这样做吗?例如,模型中的每个元素都有一个配置,其中包含要使用的视图类型的字段,工厂将使用配置注入所述视图类型?