【发布时间】:2025-12-10 21:55:01
【问题描述】:
是否存在用于桌面 GUI 应用程序的任何 GUI 平台(例如 Windows-API、Apple 的 Cocoa 或 Java/swing),以允许(或支持某种机制)实现一个小型 GUI 应用程序,该应用程序在类定义中包含许多数据驱动的 GUI 组件?
让我用一个例子来解释一下。假设我需要创建一个包含多个子组件的 City_GIS 应用程序,其中包括 City_ATC(显示城市空中交通管制的组件)、City_Ambulances(监控救护车的组件)等。飞机和救护车必须每隔几秒更新一次位置,点击飞机/救护车必须进行 Ajax 调用以获取最新数据并显示在表格中。
我想将每个组件实现为单独的 GUI 应用程序(即在 GUI 类中),以便我可以对其进行优化和单独测试。然后我必须能够将每个小型 GUI 应用程序实现组装成一个类,只需编写两行代码即可组装,例如:
// Code needed to assemble City_ATC into the application is:
RepComp AirTraffic= new CityATC_RCC (ACi, AirportCode);
ParentCanvas.AddChild (AirTraffic, 0, 0, null);
// Code needed to assemble City_Ambulances into the application is:
RepComp CityER= new City_Ambulances (ACi, ZipCode);
ParentCanvas.AddChild (CityER, 0, 0, null);
如果这个应用程序有十几个这样的子组件,我应该能够将每个子组件作为一个小的 GUI 应用程序来实现和测试(在一个类中,可以用来组装这个组件)。每个迷你 GUI 应用程序/类实现所有应用程序逻辑和表示逻辑。组装每个子组件的代码行数不得超过 3 到 5 行,删除行必须有效地删除子组件。
例如,飞机的形状必须反映模型(例如波音 747 或空中客车 330)并且必须用颜色编码以显示传入、传出等。负责每个此类组件的每个工程师都可以不断改进他的组件和/或经常添加此类功能并在没有意大利面条代码的情况下对其进行单独测试。由于每个 mini-GUI 应用程序/类都可以有一个独立的代码库(一组文件)和版本控制机制,他甚至不必看到为另一个 mini-GUI 应用程序/类实现的单行代码。也就是说,每个组件都没有意大利面条代码。
虽然可以创建这种 GUI 库,但我找不到任何现有的 GUI API 支持这个有用功能的方法。我绝对确信它可以支持这种特性,因为我们创建了一个 Java GUI 库来创建这样的 GUI 类,这些类可以被组装以构建复杂的数据驱动的 web 图形用户界面应用程序(例如,在 web 浏览器中运行)。
您可以通过访问网站http://pioneer-soft.com 并选择:“DEMO” -> “Real CBSD” -> “Assembling Replaceable Components for Multiple Cities”(在网页左侧)查看此类组件的演示。我们为每个城市创建了一个类(通过组装 ATC 和救护车的对象)并将多个对象传递给一个选项卡组件。这对于任何桌面 GUI 平台的桌面是否可行?
最好的问候, 拉朱
【问题讨论】:
标签: user-interface web frameworks desktop