如何制作一个Block builder\拖放布局程序?
Posted
技术标签:
【中文标题】如何制作一个Block builder\\拖放布局程序?【英文标题】:How to make a Block builder \drag and drop layout program?如何制作一个Block builder\拖放布局程序? 【发布时间】:2016-02-20 20:32:03 【问题描述】:我是 GUI 编程的新手,我想创建一个具有模块的程序,并使其用户能够通过拖放将这些模块连接在一起,然后以可视方式将它们连接在一起,以创建用于模拟的结构。
已经上市的示例软件: Proteus , EV3 乐高软件 , matlab simulink
我打算将 glade 与 gtkmm 一起使用,尽管我在该主题上找到的只是拖放教程,这没什么用
我真的只需要指导方针以及从哪里开始学习如何制作我的项目
谢谢
【问题讨论】:
【参考方案1】:我不知道有什么 GTK+ 或 gtkmm API 会有很大帮助,尽管我希望存在一些合适的高级别的 API。我已经实现了一些非常相似的东西,用于设计数据库表图:
http://www.murrayc.com/permalink/2007/02/17/glom-relationships-overview/
用于设计数据库记录的打印布局。 我通过 goocanvasmm 使用了 GooCanvas,但必须实现几个类来提供通用功能,例如拖动移动、拖动角调整大小、对齐网格、对齐线条等。我的代码有效,但是我对此并不感到自豪:
https://git.gnome.org/browse/glom/tree/glom/utility_widgets/canvas
Glade 在这方面帮不上什么忙。它用于布置普通小部件,而不是用于实现诸如此类的专用 UI。
【讨论】:
感谢您的回复。你的程序代表了我需要做的一个例子,我可能只是去 goocanvas 上学习,但我注意到它有一些限制和不稳定,正如你网站上提到的那样。你知道我可以使用的其他 gui 环境还是你建议我继续使用画布? 这是一篇非常古老的博客文章,从 2007 年开始。我只是链接到它以获取屏幕截图。从那以后,我让它工作得很好。我可以推荐 Goocanvas,即使它没有提供我希望某些库提供的更高级别的用户交互。以上是关于如何制作一个Block builder\拖放布局程序?的主要内容,如果未能解决你的问题,请参考以下文章