Qt4模块化合成编辑小部件

问题描述 投票:1回答:3

我即将开始为模块化综合应用程序(如Alsa Modular Synth,Pure Data,Ingen)编写GUI,用于补丁(声音)编辑。

我需要做的是这样的事情:

Ingen (来源:drobilla.net

hallseymrk1? (来源:mcgill.ca

所以,基本上,这是一个我可以绘制一些矩形(盒子)的区域,这些矩形表示具有输入和输出端口的合成器模块,我可以用电线连接它们。

问题是我无法弄清楚两个如何为编辑区域创建一个小部件:使用一个简单的2D绘图上下文,我手动绘制框似乎是唯一合理的方法来做到这一点,但这样做我放松了所有的qt给我的伟大的事件管理。

我想知道是否有可能创建一个自定义布局,只需要创建“盒子”的坐标并将它们放在屏幕上,这样我就可以将这些框实现为QWidget的子类(并重用qt的事件处理系统)并添加他们像往常一样走到窗前。

或者也许有更好的方法?

谢谢

c++ user-interface open-source qt4 synthesizer
3个回答
1
投票

看看QGraphicsScene和QGraphicsView。这样您就可以创建一个充满项目的场景。每个项目都可以接收鼠标事件,您可以手动绘制它。


0
投票

您可以创建一个继承自QLayout的自定义布局类,并使用坐标重载add(QWidget * w)函数。

我个人正在使用QGraphicsView和QGraphicsScene。您可以处理一些事件(作为鼠标事件)并轻松找到您的QGraphicsItem。


0
投票

看看qazxsw poi上的Gephex源代码

他们已经为Qt构建了这样的小部件,尽管可能有点旧代码(QT3)和特定于应用程序。

你好

© www.soinside.com 2019 - 2024. All rights reserved.