既然你已经有个目标,那就照着这个目标去选择需要哪些技术才能实现。比如,你现在的程序已经能够在控制台运行,那么就考虑界面需要提供哪些参数来让你的程序能够运行?如果你的程序参数是通过命令行参数传入的,或者直接写死在源代码里面,那么就应该改造成接受参数。这样,界面就可以使用参数传入,从而复用你的程序。你现在的程序就是业务逻辑,界面用来展示业务,这样就实现了业务与展示的分离。一旦程序完成,那么就开始从最简单的角度入手,比如最短路径算法可能需要绘制地图。算法里面的地图可能使用二维数组存储,那么如何在界面展示这个数组?最简单的思路可能是元素 0 显示成路径,元素 1 显示成墙,类似这样。所以就可以考虑在 Qt 中按照这个二维数组的数据绘制地图。这就涉及到窗口绘图的技术。完成地图,那么你要考虑用户该怎么输入最短路径需要的两个点?当然让用户通过鼠标点击选择最好。这就需要 Qt 的鼠标事件处理。因此针对你的程序,可能仅仅为了图形化显示一个算法,那么可以从如何可视化显示你算法的数据、过程入手,考虑将算法中抽象的数组存储、每步的结果,使用图形显示出来。最终你将得到一个可视化的算法演示过程。然后你可能再需要菜单控制算法开始、结束等,这样就基本完成一个简单的程序了。如果感觉从绘图入口比较复杂,那也可以反过来,从菜单到绘制。总之不要既想做菜单又想完成显示,这样结构就会混乱了。
首页 >
我的OpenCL学习之路3有关get > 《Qt 学习之路 2》目录