【问题标题】:Qt4 modular synth editing widgetQt4 模块化合成器编辑小部件
【发布时间】:2009-09-28 14:23:09
【问题描述】:

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

我需要做的是这样的:


(来源:drobilla.net)


(来源:mcgill.ca)

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

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

我想知道是否有可能创建一个自定义布局,该布局只需获取创建的“框”的坐标并将它们放在屏幕上,以便我将框实现为 QWidget 的子类(并重用 qt 的事件处理系统)然后像往常一样将它们添加到窗口中。

或者也许有更好的方法?

谢谢

【问题讨论】:

    标签: c++ user-interface open-source qt4 synthesizer


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

        在 http://www.gephex.org/download.php 上查看 Gephex 源代码

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

        淅淅

        【讨论】:

          猜你喜欢
          • 2018-03-03
          • 2021-09-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多