是否存在用于桌面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),并且必须进行颜色编码以显示传入、传出等。负责每个此类组件的每个工程师都可以持续和/或频繁地改进其组件,以添加此类功能,并从意大利面条式代码中单独测试它。因为每个迷你GUI应用程序/类都可以有一个独立的代码库(一组文件)和版本控制机制,所以他甚至不会被迫看到为另一个迷你GUI应用程序/类实现的一行代码。也就是说,每个组件都没有意大利面条代码。
尽管可以创建这种GUI库,但我找不到任何现有的GUI API来支持这一有用的功能。我绝对相信支持这种功能是可能的,因为我们创建了一个Java GUI库来创建这样的GUI类,这些类可以被组装起来为web构建复杂的数据驱动的GUI应用程序(例如,在web浏览器中运行)。
您可以通过访问网站http://pioneer-soft.com并选择:“demo”->“Real CBSD”->“为多个城市组装可更换组件”(在网页左侧)来查看此类组件的演示。我们为每个城市创建了一个类(通过组装ATC和救护车的对象),并将多个对象传递给一个Tab组件。对于任何桌面GUI平台的桌面,这是可能的吗?
致以最好的问候,Raju
发布于 2015-10-05 16:33:10
如果我正确理解您的问题,我认为您正在谈论对话框。
1>在windows MFC中,有一个CDialog类。你必须从CDialog派生一个类,如果你想修改它的构造函数,把你的http调用放在OnInit函数中。在此之后,只需使用以下命令调用它
CAirTrafficDlg AirTraffic(ACi,AirportCode);AirTraffic.DoModal();
您可以将类放在dll中并从不同的EXEs调用。
2>更好的WPF。我在WPF方面没有足够的经验,但是由于WPF的用户界面是使用xaml设计的,你可以将类和它的GUI一起复制到另一个使用MFC的复杂项目中。
https://stackoverflow.com/questions/32943880
复制相似问题