我即将开始为将用于音色(声音)编辑的模块化合成应用程序(如 Alsa Modular Synth、Pure Data、Ingen)编写 GUI。
我需要做的是这样的:
(来源:drobilla.net)
(来源:mcgill.ca)
所以,基本上,这是一个区域,我可以在其中绘制一些矩形(框),这些矩形(框)代表具有输入和输出端口的合成器模块,我可以用电线连接这些端口。
问题是我无法弄清楚两个如何为编辑区域创建一个小部件:使用一个简单的 2D 绘图上下文,我在其中手动绘制框似乎是唯一合乎逻辑的方法,但这样做我放弃 qt 给我的所有重要事件管理。
我想知道是否有可能创建一个自定义布局,它只需获取创建的“框”的坐标并将它们放在屏幕上,以便我将这些框实现为 QWidget 的子类(并重用 qt 的事件处理系统)然后像往常一样将它们添加到窗口中。
或者也许有更好的方法?
谢谢
最佳答案
看看 QGraphicsScene 和 QGraphicsView。 这样你就可以创建一个充满项目的场景。 每个项目都可以接收鼠标事件,您可以手动绘制它。
关于c++ - Qt4 模块化合成器编辑小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1487318/