使用Qt/Qt-Quick为我的嵌入式主板创建主屏幕

使用Qt/Qt-Quick为我的嵌入式主板创建主屏幕,qt,qml,qt-quick,Qt,Qml,Qt Quick,我不是专家,但我已经为SBC6845使用Qt/QtEmbedded有一段时间了。我已经创建了一些应用程序,并在我的设备上成功运行了它们。 现在我希望所有这些应用程序都出现在主屏幕上。我知道使用QML/Qt-Quick可以实现这一点,但我不知道如何继续。我已经浏览了一些链接和教程,但大多数都展示了如何使用QtQuick创建按钮和所有这些,但仅此而已。我还没有找到一些教程/文档,可以告诉我如何在主屏幕上继续使用所有应用程序。我需要一些指导,任何链接,对文件/书籍的建议是欢迎的 [在为我的SBC交叉编

我不是专家,但我已经为SBC6845使用Qt/QtEmbedded有一段时间了。我已经创建了一些应用程序,并在我的设备上成功运行了它们。 现在我希望所有这些应用程序都出现在主屏幕上。我知道使用QML/Qt-Quick可以实现这一点,但我不知道如何继续。我已经浏览了一些链接和教程,但大多数都展示了如何使用QtQuick创建按钮和所有这些,但仅此而已。我还没有找到一些教程/文档,可以告诉我如何在主屏幕上继续使用所有应用程序。我需要一些指导,任何链接,对文件/书籍的建议是欢迎的

[在为我的SBC交叉编译QT嵌入式4.6.2库时,我遇到了启用opengl支持的问题。而且,我不知道在没有opengl的情况下使用QtQuick2的其他方法

应用程序(其中5-6个)是QWidget,链接图标需要留在主屏幕上。我想让它们尽可能简单,不会对图标产生任何影响

简单地说,我正在尝试创建一组显示在主屏幕上与这些应用程序链接的图标。如果这些应用程序以windows风格的应用程序(或类似弹出对话框)启动,也将满足我的目的。] 谢谢。

  • “我浏览了一些链接和教程,但大多数都显示了这一点 如何使用Qt-Quick创建按钮和所有这些,但不比 那"

    对于问题的这一部分,我建议您下载QtCreator 然后开始玩演示(不仅仅使用一些按钮: 您有ListView、GridView、代理、动画、, 粒子、QtQuick布局(仅限Qt5.1)、QtQuick控件(Qt5.1 仅限)

    还有相当完整的:

  • 我完全不熟悉所有嵌入式/交叉编译 你问题的各个方面

  • 关于OpenGL/QtQuick2:

    还请注意,您可以将QtQuick2场景嵌入到QWidget中,但不能 另一种方式(场景图中没有QtWidget)


因此,对于您来说,最简单/最快的方法可能是坚持使用Qt4或Qt5声明性/QtQuick1模块(可能从Qt 5.2开始就被弃用/删除)。在这种设置中,OpenGL不需要scenegraph/强制要求。您可以将QWidgets嵌入到qml场景中(没有scenegraph:它使用QGraphicsView后端)通过QGraphicsProxyWidget

然后,您将有一些GridView(您也可以使用一些带有转发器的网格)填充模型和委托(=委托充当要填充模型的模板项)

您的代理将有状态/可能是加载程序(用于按需加载):图标状态,单击时,一些最大化状态包含加载程序,通过QGraphicsProxyWidget加载您的小部件

在本例中,您已经有了其中的一半(网格+2状态:小图标网格和最大化视图,您只需要实现委托/加载/模型/QGraphicsProxy小部件):

您的问题缺少详细信息……对于QtQuick2,您需要一个OpenGL ES2设备(或使用mesa/clang/llvm)。你想启动的那些应用程序…你需要将它们嵌入你的主屏幕吗?还是只是一些图标网格启动器?这些是QtWidget应用程序吗?我添加了一些更多信息,但我无法理解“嵌入主屏幕”和“图标网格启动器”之间的区别。如果“嵌入”是指永久定位主屏幕中的图标,是的,那也可以。通过嵌入式,我问你的主屏幕是否只是一些快捷方式启动器(你的“应用程序”是独立的应用程序,由主屏幕启动器启动并忘记)。或者你的“应用程序”是否只是嵌入并显示在主屏幕窗口中的小部件(对你来说,它更像是一个图形化的shell,而不是一个单独的启动器)。我在回答中假设了后者。