是否有可能将每个小型桌面GUI应用程序封装在一个类定义中,以将它们组装为组件,这些组件可以很容易地替换



是否存在桌面GUI应用程序的GUI平台(例如Windows-API, Apple 's Cocoa或Java/swing),允许(或支持一种机制)在类定义中实现包含许多数据驱动的GUI组件的小型GUI应用程序?

让我用一个例子来解释。假设我需要创建一个包含若干子组件的City_GIS应用程序,其中包括City_ATC(显示城市空中交通管制的组件)、city_ambulance(监控救护车的组件)等等。飞机和救护车必须每隔几秒钟更新一次位置,点击飞机/救护车必须进行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类,这些类可以组装起来构建复杂的数据驱动的GUI应用程序(例如,在web浏览器中运行)。

您可以通过进入网站http://pioneer-soft.com,选择:"demo"->"Real CBSD"->"assemble Replaceable components for Multiple Cities"(在网页左侧),看到这些组件的演示。我们为每个城市创建了一个类(通过组装ATC的对象)。救护车),将多个对象传递给tab组件。这对于任何桌面GUI平台都是可能的吗?

最诚挚的问候,Raju

如果我正确理解了你的问题,我认为你说的是对话框。

1>在windows MFC中,有CDialog类。你必须从CDialog派生一个类,修改它的构造函数,如果你想,把你的http调用在OnInit函数。之后你只需要使用

来调用它

CAirTrafficDlg AirTraffic(ACi, AirportCode);

AirTraffic.DoModal ();

您可以将类放入dll中,并从不同的exe中调用。

2>还是更好的WPF。我在WPF方面没有足够的经验,但是WPF的用户界面是用xaml设计的,你可以把这个类和它的GUI复制到另一个MFC复杂的项目中。

最新更新