如何在 QT 中创建功能区组件?
Posted
技术标签:
【中文标题】如何在 QT 中创建功能区组件?【英文标题】:How do I go about creating a Ribbon component in QT? 【发布时间】:2020-05-01 10:10:07 【问题描述】:功能区是以下组件:
我想使用 QtQuick (QML) 和 PySide2 作为后端来构建组件。
我教过的当前解决方案: 我知道我可以使用 TopBar 构建按钮,即:
我可以为三种不同类型的按钮创建三个不同的委托:
代表 1:
代表 2:
代表 3:
并通过在模型中指定为“类型”来更改它们。
----------------------------------------------- ----------
但是我该如何将它们组合在一起呢? 我教过: • ListView 只能有一个方向,所以我无法使用它来构建它。 • 网格视图,但它也有可能是一个方向的相同问题。
有人可以告诉我如何构建功能区组件吗?模型应该如何指定?
如何在底部添加按钮分组,即:
它应该根据组中按钮的数量自动扩展。
【问题讨论】:
尝试使用普通中继器? doc.qt.io/qt-5/qml-qtquick-repeater.html 您能简单介绍一下中继器方法吗? @hyde 【参考方案1】:让我简要介绍一下你可以在这里做什么。
为slides
、fonts
和paragraphs
创建单独的项目(.qml 文件)。它创建了关注点分离。
将您在第一步中创建的那些项目排列在一个父项目中,该父项目只是通过锚定将它们连接在一起,或者可能只是在row
内。
现在为每个项目设计。我们以slides
为例
在这里您可以将项目排列成两行,第二行将包含slides
,第一行将包含其余项目。
现在第一行可以分成两列
第一栏 -> new slide
第 2 列 -> layout
, reset
, section
(这里如果你有类似的项目你可以使用中继器)
font
和paragraph
的设计基本相同。您将它们划分为行和列,并将您的项目放入其中。
【讨论】:
非常感谢。这是一个很好的方法,我会试试这个。您能否简要介绍一下我如何才能使这种动态变化?例如:我想有一个“幻灯片”的模型:Name:“New Slide”,icon:“\u1586”,delegate:“BigButton”,action:“a.launch()” 等等on...鉴于此,它应该动态生成它... ------ 哪个更好:上述动态方法或您建议的静态方法?以上是关于如何在 QT 中创建功能区组件?的主要内容,如果未能解决你的问题,请参考以下文章