Frage

Ich bin dabei, eine GUI für eine modulare Synthese -App (wie den modularen Synthesiz von ALSA, reine Daten, Ingen) zu schreiben, das für die Bearbeitung von Patch (Sound) verwendet wird.

Was ich tun muss, ist ungefähr so:

Ingen
(Quelle: drobilla.net)

Pure Data

hallseymrk1?
(Quelle: McGill.ca)

Grundsätzlich ist es ein Bereich, in dem ich einige Rechtecke (Boxen) zeichnen kann, die Synthesizer -Module mit Eingangs- und Ausgangsports darstellen, die ich mit Drähten verbinden kann.

Das Problem ist, dass ich nicht herausfinden kann, wie zwei ein Widget für den Bearbeitungsbereich erstellen: Verwenden eines einfachen 2D -Zeichnungskontexts, in dem ich die Kästchen manuell zeichne Tolles Eventmanagement, das QT mir gibt.

Ich frage mich, ob es die Möglichkeit gibt, ein benutzerdefiniertes Layout zu erstellen, das lediglich Koordinaten von erstellten "Boxen" nimmt und sie auf den Bildschirm setzt, damit ich die Kästchen als Unterklassen von Qwidget (und wiederverwenden von QTs Ereignisbearbeitungssystem) und ich füge hinzu) sie bis zum Fenster, wie ich es normalerweise tue.

Oder gibt es vielleicht einen besseren Weg?

Vielen Dank

War es hilfreich?

Lösung

Schauen Sie sich QGraphicsScene und QGraphicsView an. Auf diese Weise können Sie eine Szene mit Elementen erstellen. Jeder Artikel kann Mausveranstaltungen erhalten und Sie können es manuell malen.

Andere Tipps

Sie können eine benutzerdefinierte Layout -Klasse erstellen, die von Qlayout erbt und die Funktion hinzufügen (qwidget* w) mit den Koordinaten überlastet.

Persönlich verwende ich QGraphicsView und QGraphicsScene. Sie können einige Veranstaltungen (als Mausereignis) übernehmen und Ihr QGraphicSItem problemlos finden.

Schauen Sie sich Gephex Sourcecode an http://www.gephex.org/download.php

Sie haben bereits ein solches Widget für QT erstellt, obwohl sie möglicherweise etwas alter Code (QT3) und anwendungsspezifisch sein.

Ciao

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top